--- Comment #16 from domob at gcc dot gnu dot org 2009-10-05 13:19 ---
Fixed on trunk. I won't backport, as this is no real regression.
I still volunteer to rework the assigned/computed goto implementation (and have
some ideas for that) in case we deem it worth the effort, but as both
--- Comment #15 from domob at gcc dot gnu dot org 2009-10-05 13:15 ---
Subject: Bug 41403
Author: domob
Date: Mon Oct 5 13:15:35 2009
New Revision: 152448
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=152448
Log:
2009-10-05 Daniel Kraft
PR fortran/41403
* t
--- Comment #14 from domob at gcc dot gnu dot org 2009-10-03 14:13 ---
Here's a patch and some comments for this:
http://gcc.gnu.org/ml/fortran/2009-10/msg00017.html
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41403
--- Comment #13 from domob at gcc dot gnu dot org 2009-10-02 16:26 ---
I'll work on this.
--
domob at gcc dot gnu dot org changed:
What|Removed |Added
AssignedTo|
--- Comment #12 from rguenth at gcc dot gnu dot org 2009-09-20 17:09
---
Yes that's ok. What is not ok is to compare addresses of labels and to rely
on different labels having different addresses.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41403
--- Comment #11 from jvdelisle at verizon dot net 2009-09-20 17:04 ---
Subject: Re: [4.3/4.4/4.5 Regression] miscompilation of
goto/label using code
rguenth at gcc dot gnu dot org wrote:
> but instead it should have used a computed goto, like
>
> C.0 = { &__label_001262, &__label_0
--- Comment #10 from rguenth at gcc dot gnu dot org 2009-09-20 14:44
---
No, the C code is valid, but it's results depend on optimization level
(just like if you would compare the addresses of stack locals).
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41403
--- Comment #9 from jv244 at cam dot ac dot uk 2009-09-20 14:18 ---
(In reply to comment #8)
> Thus, this is a frontend issue with assigned goto (a deleted feature btw).
so just for my curiosity, is the C code thus invalid?
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41403
--- Comment #8 from rguenth at gcc dot gnu dot org 2009-09-20 14:05 ---
On the tree level we end up with the correct (but unfortunately unfolded)
main ()
{
int icon01;
:
if (&label_001263 == &label_001262)
goto (label_001265);
else
goto (label_001262);
label_001262: