re PR tree-optimization/78312 (wrong code due to ssa-backprop)

2016-11-14  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/78312
	* gimple-ssa-backprop.c (backprop::prepare_change): Reset
	flow-sensitive info.

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

From-SVN: r242380
This commit is contained in:
Richard Biener 2016-11-14 10:33:15 +00:00 committed by Richard Biener
parent d97cca4a46
commit 5129b43be6
4 changed files with 35 additions and 0 deletions

View File

@ -1,3 +1,9 @@
2016-11-14 Richard Biener <rguenther@suse.de>
PR tree-optimization/78312
* gimple-ssa-backprop.c (backprop::prepare_change): Reset
flow-sensitive info.
2016-11-14 Georg-Johann Lay <avr@gjlay.de>
PR target/78093

View File

@ -728,6 +728,7 @@ backprop::prepare_change (tree var)
{
if (MAY_HAVE_DEBUG_STMTS)
insert_debug_temp_for_var_def (NULL, var);
reset_flow_sensitive_info (var);
}
/* STMT has been changed. Give the fold machinery a chance to simplify

View File

@ -1,3 +1,8 @@
2016-11-14 Richard Biener <rguenther@suse.de>
PR tree-optimization/78312
* gcc.dg/torture/pr78312.c: New testcase.
2016-11-14 Georg-Johann Lay <avr@gjlay.de>
PR target/78093

View File

@ -0,0 +1,23 @@
/* { dg-do run } */
typedef unsigned short u16;
static u16 a;
u16 __attribute__ ((noinline, noclone))
foo (int p1)
{
a = -(p1 > 0);
a *= 0 != a;
a *= (unsigned)a;
return a;
}
int
main ()
{
u16 x = foo (1);
if (x != 1)
__builtin_abort();
return 0;
}