On Wed, Jun 18, 2014 at 12:55:01PM +0800, Thomas Preud'homme wrote: > @@ -1646,20 +1648,23 @@ do_shift_rotate (enum tree_code code, > n->n <<= count; > break; > case RSHIFT_EXPR: > + /* Arithmetic shift of signed type: result is dependent on the value. > */ > + if (!TYPE_UNSIGNED (n->type) && (n->n & (0xff << (bitsize - 8)))) > + return false;
Looks like here an undefined behavior happens: tree-ssa-math-opts.c:1672:53: runtime error: shift exponent 56 is too large for 32-bit type 'int' Marek