mirror of git://gcc.gnu.org/git/gcc.git
re PR tree-optimization/59102 (ICE on valid code at -Os and above on x86_64-linux-gnu)
PR tree-optimization/59102 * gimple-ssa-isolate-paths.c (insert_trap_and_remove_trailing_statments): Ensure STMT is a gimple assignment before looking at gimple_assign_lhs. PR tree-optimization/59102 * gcc.c-torture/compile/pr59102.c: New test. From-SVN: r204773
This commit is contained in:
parent
41808d153a
commit
46dfed6556
|
|
@ -1,3 +1,10 @@
|
|||
2013-11-13 Jeff Law <law@redhat.com>
|
||||
|
||||
PR tree-optimization/59102
|
||||
* gimple-ssa-isolate-paths.c
|
||||
(insert_trap_and_remove_trailing_statments): Ensure STMT is a
|
||||
gimple assignment before looking at gimple_assign_lhs.
|
||||
|
||||
2013-11-13 Vladimir Makarov <vmakarov@redhat.com>
|
||||
|
||||
* ira.c: Add comment about threads at the top of file.
|
||||
|
|
|
|||
|
|
@ -74,9 +74,11 @@ insert_trap_and_remove_trailing_statements (gimple_stmt_iterator *si_p, tree op)
|
|||
LHS will be a throw-away SSA_NAME and the RHS is the NULL dereference.
|
||||
|
||||
If the dereference is a store and we can easily transform the RHS,
|
||||
then simplify the RHS to enable more DCE. */
|
||||
then simplify the RHS to enable more DCE. Note that we require the
|
||||
statement to be a GIMPLE_ASSIGN which filters out calls on the RHS. */
|
||||
gimple stmt = gsi_stmt (*si_p);
|
||||
if (walk_stmt_load_store_ops (stmt, (void *)op, NULL, check_loadstore)
|
||||
&& is_gimple_assign (stmt)
|
||||
&& INTEGRAL_TYPE_P (TREE_TYPE (gimple_assign_lhs (stmt))))
|
||||
{
|
||||
/* We just need to turn the RHS into zero converted to the proper
|
||||
|
|
|
|||
|
|
@ -1,4 +1,9 @@
|
|||
2013-11-14 Tom de Vries <tom@codesourcery.com>
|
||||
2013-11-13 Jeff Law <law@redhat.com>
|
||||
|
||||
PR tree-optimization/59102
|
||||
* gcc.c-torture/compile/pr59102.c: New test.
|
||||
|
||||
2013-11-13 Tom de Vries <tom@codesourcery.com>
|
||||
|
||||
* gcc.dg/tail-merge-store.c: New test.
|
||||
|
||||
|
|
@ -7,7 +12,7 @@
|
|||
* testsuite/g++.dg/plugin/selfassign.c: Include gimple-iterator.h.
|
||||
* testsuite/gcc.dg/plugin/selfassign.c: Likewise.
|
||||
|
||||
2013-11-12 Jeff Law <law@redhat.com>
|
||||
2013-11-13 Jeff Law <law@redhat.com>
|
||||
|
||||
* PR middle-end/59119
|
||||
* gcc.c-torture/compile/pr59119.c: New test.
|
||||
|
|
|
|||
|
|
@ -0,0 +1,28 @@
|
|||
|
||||
int a, b, c, f;
|
||||
|
||||
struct S
|
||||
{
|
||||
int f0;
|
||||
} d, *e;
|
||||
|
||||
struct S
|
||||
foo ()
|
||||
{
|
||||
b = c = b || a == 0 || f % 11;
|
||||
return d;
|
||||
}
|
||||
|
||||
int
|
||||
main ()
|
||||
{
|
||||
foo ();
|
||||
if (b);
|
||||
else
|
||||
{
|
||||
struct S **g = &e;
|
||||
*g = 0;
|
||||
*e = foo ();
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
Loading…
Reference in New Issue