------- Additional Comments From pinskia at gcc dot gnu dot org 2004-12-11 07:19 ------- (In reply to comment #5) > (In reply to comment #4) > > when I compile this program with mainline. Isnt this what you claimed it > > should > > be compiled to? or are you claiming it should be optimized to 'return 0'? > > I am claiming it should be compiled to "return 0". The full testcase which > is closer to > what shows up in GCC is: > > void f(int a) > { > int i = a & -129; > if (i == 144) > link_error (); > }
The testcase works but for the wrong reason (we call fold for COND_EXPR after out of ssa because of tree_cleanup_cfg). Here is a testcase which fails though: void g(int) __attribute__((noinline); void g(int a) { a+=2; } void f(int a) { int i = a & -129; g(i); if (i == 144) link_error (); } -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18892