re PR tree-optimization/77514 (ICE in VN_INFO_GET, at tree-ssa-sccvn.c:406 w/ -O2 (and above))
2016-09-15 Richard Biener <rguenther@suse.de> PR tree-optimization/77514 * tree-ssa-pre.c (create_expression_by_pieces): Handle garbage only forced_stmts sequence. * gcc.dg/torture/pr77514.c: New testcase. From-SVN: r240153
This commit is contained in:
parent
46aa019a01
commit
d08615f28f
@ -1,3 +1,9 @@
|
||||
2016-09-15 Richard Biener <rguenther@suse.de>
|
||||
|
||||
PR tree-optimization/77514
|
||||
* tree-ssa-pre.c (create_expression_by_pieces): Handle garbage
|
||||
only forced_stmts sequence.
|
||||
|
||||
2016-09-15 Kugan Vivekanandarajah <kuganv@linaro.org>
|
||||
|
||||
* tree-ssanames.h (FOR_EACH_SSA_NAME): New.
|
||||
|
@ -1,3 +1,8 @@
|
||||
2016-09-15 Richard Biener <rguenther@suse.de>
|
||||
|
||||
PR tree-optimization/77514
|
||||
* gcc.dg/torture/pr77514.c: New testcase.
|
||||
|
||||
2016-09-14 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR c++/77549
|
||||
|
21
gcc/testsuite/gcc.dg/torture/pr77514.c
Normal file
21
gcc/testsuite/gcc.dg/torture/pr77514.c
Normal file
@ -0,0 +1,21 @@
|
||||
/* { dg-do compile } */
|
||||
|
||||
void
|
||||
m1 (char l0, char e8, int hw)
|
||||
{
|
||||
char *rs = &l0;
|
||||
|
||||
yu:
|
||||
l0 = 1;
|
||||
while (l0 != 0)
|
||||
{
|
||||
l0 = -l0;
|
||||
l0 += (*rs ^ (l0 &= 1));
|
||||
}
|
||||
for (;;)
|
||||
{
|
||||
if (hw != 0)
|
||||
goto yu;
|
||||
rs = &e8;
|
||||
}
|
||||
}
|
@ -2879,7 +2879,21 @@ create_expression_by_pieces (basic_block block, pre_expr expr,
|
||||
gimple_seq_discard (forced_stmts);
|
||||
return folded;
|
||||
}
|
||||
|
||||
/* Likewise if we simplified to sth not queued for insertion. */
|
||||
bool found = false;
|
||||
gsi = gsi_start (forced_stmts);
|
||||
for (; !gsi_end_p (gsi); gsi_next (&gsi))
|
||||
{
|
||||
gimple *stmt = gsi_stmt (gsi);
|
||||
tree forcedname = gimple_get_lhs (stmt);
|
||||
if (forcedname == folded)
|
||||
found = true;
|
||||
}
|
||||
if (! found)
|
||||
{
|
||||
gimple_seq_discard (forced_stmts);
|
||||
return folded;
|
||||
}
|
||||
gcc_assert (TREE_CODE (folded) == SSA_NAME);
|
||||
|
||||
/* If we have any intermediate expressions to the value sets, add them
|
||||
|
Loading…
x
Reference in New Issue
Block a user