http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46758
Alexander Monakov <amonakov at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Last reconfirmed| |2010.12.03 15:27:13 CC| |amonakov at gcc dot gnu.org Ever Confirmed|0 |1 --- Comment #1 from Alexander Monakov <amonakov at gcc dot gnu.org> 2010-12-03 15:27:13 UTC --- In this particular example, the problem is in scan_tree_for_params_int: int v = int_cst_value (cst); mpz_init (val); mpz_set_si (val, 0); /* Necessary to not get "-1 = 2^n - 1". */ if (v < 0) mpz_sub_ui (val, val, -v); else mpz_add_ui (val, val, v); (gdb) p cst $8 = (tree) 0x7ffff5a4e848 (gdb) pt <integer_cst 0x7ffff5a4e848 type <integer_type 0x7ffff7ed0738 long long int> constant -8589934593> (gdb) p v $9 = -1 (gdb) There are multiple places where graphite uses int_cst_value. Note that the problem may be more severe on 32-bit hosts as there the tree may hold a 64-bit constant but mpz_*_{u,s}i accepts 'long's.