http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47838
Richard Guenther <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Last reconfirmed| |2011.02.22 10:56:25 Ever Confirmed|0 |1 --- Comment #3 from Richard Guenther <rguenth at gcc dot gnu.org> 2011-02-22 10:56:25 UTC --- IVOPTs chooses (again) some unfortunate IV that is enough to confuse the tree-dump scan. ivtmp.6_6 = (long unsigned int) &fundamentals[1]; vs. ivtmp.6_6 = (long unsigned int) &fundamentals[0]; The folding that is tested for should happen at loop header copying time. Can you check if Index: testsuite/gcc.dg/tree-ssa/foldconst-2.c =================================================================== --- testsuite/gcc.dg/tree-ssa/foldconst-2.c (revision 170359) +++ testsuite/gcc.dg/tree-ssa/foldconst-2.c (working copy) @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-O2 -fdump-tree-optimized" } */ +/* { dg-options "-O2 -fdump-tree-ch" } */ typedef union tree_node *tree; enum tree_code { @@ -54,5 +54,5 @@ emit_support_tinfos (void) } /* We should copy loop header to fundamentals[0] and then fold it way into known value. */ -/* { dg-final { scan-tree-dump-not "fundamentals.0" "optimized"} } */ -/* { dg-final { cleanup-tree-dump "optimized" } } */ +/* { dg-final { scan-tree-dump-not "fundamentals.0" "ch"} } */ +/* { dg-final { cleanup-tree-dump "ch" } } */ works for you (it does for me) and commit it if so? Thanks.