Commit 819df781 by Richard Biener Committed by Richard Biener

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

2017-03-27  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/80181
	* tree-ssa-ccp.c (likely_value): UNDEFINED ^ X is UNDEFINED.

	* gcc.dg/torture/pr80181.c: New testcase.

From-SVN: r246500
parent e5dcff3e
2017-03-27 Richard Biener <rguenther@suse.de>
PR tree-optimization/80181
* tree-ssa-ccp.c (likely_value): UNDEFINED ^ X is UNDEFINED.
2017-03-27 Claudiu Zissulescu <claziss@synopsys.com>
* config/arc/predicates.md (move_double_src_operand): Replace the
......
2017-03-27 Richard Biener <rguenther@suse.de>
PR tree-optimization/80181
* gcc.dg/torture/pr80181.c: New testcase.
2017-03-27 Claudiu Zissulescu <claziss@synopsys.com>
* testsuite/gcc.target/arc/interrupt-4.c: New file.
......
/* { dg-do compile } */
int
nr (void)
{
}
void
it (int dl)
{
int vp = 0;
for (;;)
{
dl = vp ^ nr ();
dl ^= vp;
vp = 1;
}
}
......@@ -741,9 +741,11 @@ likely_value (gimple *stmt)
case PLUS_EXPR:
case MINUS_EXPR:
case POINTER_PLUS_EXPR:
case BIT_XOR_EXPR:
/* Not MIN_EXPR, MAX_EXPR. One VARYING operand may be selected.
Not bitwise operators, one VARYING operand may specify the
result completely. Not logical operators for the same reason.
result completely.
Not logical operators for the same reason, apart from XOR.
Not COMPLEX_EXPR as one VARYING operand makes the result partly
not UNDEFINED. Not *DIV_EXPR, comparisons and shifts because
the undefined operand may be promoted. */
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment