re PR tree-optimization/38359 (ICE in set_lattice_value, at tree-ssa-ccp.c:466)

2008-12-02  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/38359
	* fold-const.c (fold_binary): Fold -1 >> x to -1 only for
	non-negative x.

	* gcc.c-torture/compile/pr38359.c: New testcase.
	* gcc.c-torture/execute/shiftopt-1.c: Adjust.

From-SVN: r142356
This commit is contained in:
Richard Guenther 2008-12-02 14:49:00 +00:00 committed by Richard Biener
parent d47a01516c
commit bd170bbcd8
4 changed files with 14 additions and 7 deletions

View file

@ -1,3 +1,9 @@
2008-12-02 Richard Guenther <rguenther@suse.de>
PR tree-optimization/38359
* fold-const.c (fold_binary): Fold -1 >> x to -1 only for
non-negative x.
2008-12-02 Martin Jambor <mjambor@suse.cz>
PR middle-end/37861

View file

@ -11457,7 +11457,8 @@ fold_binary (enum tree_code code, tree type, tree op0, tree op1)
case RSHIFT_EXPR:
/* Optimize -1 >> x for arithmetic right shifts. */
if (integer_all_onesp (arg0) && !TYPE_UNSIGNED (type))
if (integer_all_onesp (arg0) && !TYPE_UNSIGNED (type)
&& tree_expr_nonnegative_p (arg1))
return omit_one_operand (type, arg0, arg1);
/* ... fall through ... */

View file

@ -1,3 +1,9 @@
2008-12-02 Richard Guenther <rguenther@suse.de>
PR tree-optimization/38359
* gcc.c-torture/compile/pr38359.c: New testcase.
* gcc.c-torture/execute/shiftopt-1.c: Adjust.
2008-12-02 Janus Weil <janus@gcc.gnu.org>
PR fortran/36704

View file

@ -43,12 +43,6 @@ stest (int x)
if (0 >> x != 0)
link_error ();
if (-1 >> x != -1)
link_error ();
if (~0 >> x != ~0)
link_error ();
}
int