re PR tree-optimization/46216 (ICE: SSA corruption)
2010-11-02 Richard Guenther <rguenther@suse.de> PR tree-optimization/46216 * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars): Check if we can propagate from a POINTER_PLUS_EXPR before doing so. * gcc.dg/torture/pr46216.c: New testcase. From-SVN: r166203
This commit is contained in:
parent
23d50abbe4
commit
f26aa48e06
@ -1,3 +1,9 @@
|
||||
2010-11-02 Richard Guenther <rguenther@suse.de>
|
||||
|
||||
PR tree-optimization/46216
|
||||
* tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
|
||||
Check if we can propagate from a POINTER_PLUS_EXPR before doing so.
|
||||
|
||||
2010-11-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
|
||||
|
||||
* configure.ac (*-*-irix6*): Disable set_have_as_tls.
|
||||
|
@ -1,3 +1,8 @@
|
||||
2010-11-02 Richard Guenther <rguenther@suse.de>
|
||||
|
||||
PR tree-optimization/46216
|
||||
* gcc.dg/torture/pr46216.c: New testcase.
|
||||
|
||||
2010-11-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
|
||||
|
||||
PR target/46131
|
||||
|
24
gcc/testsuite/gcc.dg/torture/pr46216.c
Normal file
24
gcc/testsuite/gcc.dg/torture/pr46216.c
Normal file
@ -0,0 +1,24 @@
|
||||
/* { dg-do compile } */
|
||||
|
||||
typedef int Embryo_Cell;
|
||||
int
|
||||
embryo_program_run(Embryo_Cell *cip)
|
||||
{
|
||||
unsigned char op;
|
||||
Embryo_Cell offs;
|
||||
static const void *switchtable[256] = {
|
||||
&&SWITCHTABLE_EMBRYO_OP_NONE, &&SWITCHTABLE_EMBRYO_OP_LOAD_PRI
|
||||
};
|
||||
for (;;)
|
||||
{
|
||||
op = *cip++;
|
||||
while (1) {
|
||||
goto *switchtable[op];
|
||||
SWITCHTABLE_EMBRYO_OP_LOAD_PRI:
|
||||
offs = *(Embryo_Cell *)cip++;
|
||||
SWITCHTABLE_EMBRYO_OP_NONE:
|
||||
break;
|
||||
};
|
||||
}
|
||||
return offs;
|
||||
}
|
@ -1983,7 +1983,8 @@ tree_ssa_forward_propagate_single_use_vars (void)
|
||||
else
|
||||
gsi_next (&gsi);
|
||||
}
|
||||
else if (gimple_assign_rhs_code (stmt) == POINTER_PLUS_EXPR)
|
||||
else if (gimple_assign_rhs_code (stmt) == POINTER_PLUS_EXPR
|
||||
&& can_propagate_from (stmt))
|
||||
{
|
||||
if (TREE_CODE (gimple_assign_rhs2 (stmt)) == INTEGER_CST
|
||||
/* ??? Better adjust the interface to that function
|
||||
|
Loading…
Reference in New Issue
Block a user