http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53424
--- Comment #3 from Andrew Pinski <pinskia at gcc dot gnu.org> 2012-05-26 23:47:56 UTC --- (gdb) p debug_tree(t) <indirect_ref 0x7ffff6e4c500 type <integer_type 0x7ffff6e6e000 int readonly SI size <integer_cst 0x7ffff6d4d080 constant 32> unit size <integer_cst 0x7ffff6d4d0a0 constant 4> align 32 symtab 0 alias set -1 canonical type 0x7ffff6e6e000 precision 32 min <integer_cst 0x7ffff6d4d020 -2147483648> max <integer_cst 0x7ffff6d4d040 2147483647> pointer_to_this <pointer_type 0x7ffff6e6e0a8>> readonly arg 0 <var_decl 0x7ffff6d3e280 x type <pointer_type 0x7ffff6e6e0a8 type <integer_type 0x7ffff6e6e000 int> unsigned DI size <integer_cst 0x7ffff6d31d40 constant 64> unit size <integer_cst 0x7ffff6d31d60 constant 8> align 64 symtab 0 alias set -1 canonical type 0x7ffff6e6e0a8> used unsigned DI file t1.c line 6 col 13 size <integer_cst 0x7ffff6d31d40 64> unit size <integer_cst 0x7ffff6d31d60 8> align 64 context <function_decl 0x7ffff6e52200 broken> initial <nop_expr 0x7ffff6e4c4b0>> t1.c:7:11> The indirect reference is marked as readonly. 2663 static bool 2664 tree_invariant_p_1 (tree t) 2665 { 2666 tree op; 2667 2668 if (TREE_CONSTANT (t) 2669 || (TREE_READONLY (t) && !TREE_SIDE_EFFECTS (t))) 2670 return true; Is where the issue is.