--- Comment #11 from jakub at gcc dot gnu dot org 2007-08-22 14:29 ---
Yeah, PR30708 seems to be stripped down from the same source.
But the stripped down testcase here in c#8 is 4.1/4.2/4.3 regression, not
just 4.1 regression.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33136
--- Comment #10 from rguenth at gcc dot gnu dot org 2007-08-22 14:19
---
Probably related to some of the open alias issues of 4.1:
http://gcc.gnu.org/bugzilla/buglist.cgi?query_format=advanced&short_desc_type=allwordssubstr&short_desc=4.1&target_milestone=4.1.3&target_milestone=4.1.4&k
--- Comment #9 from jakub at gcc dot gnu dot org 2007-08-22 13:56 ---
When struct S is not defined at global scope, but within main, then no matter
if
struct S t; is present or not 4.1/4.2/trunk aborts with -O2.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33136
--- Comment #8 from jakub at gcc dot gnu dot org 2007-08-22 13:54 ---
Even shorter testcase:
/* { dg-do run } */
/* { dg-options "-O2" } */
extern void abort (void);
struct S
{
struct S *a;
int b;
};
#ifdef VAR
struct S t;
#endif
int
main (void)
{
struct S *s = (struct S *) 0,
--- Comment #7 from jakub at gcc dot gnu dot org 2007-08-22 13:27 ---
Actually, to me this doesn't look like missed-optimization at all.
And you should be happy for 4.2.1 generated bigger code, 4.1.1 optimized out
something it shouldn't.
Below is an stripped down testcase, which works on
--- Comment #6 from pinskia at gcc dot gnu dot org 2007-08-21 16:20 ---
Actually I think this might be related to removing iterative jump threading and
not aliasing.
--
pinskia at gcc dot gnu dot org changed:
What|Removed |Added
---
--- Comment #5 from rguenth at gcc dot gnu dot org 2007-08-21 13:12 ---
trunk regresses even more
--
rguenth at gcc dot gnu dot org changed:
What|Removed |Added