Commit 87cd4259 by Michael Matz Committed by Michael Matz

tree-eh.c (lower_eh_constructs_2): Don't add assignments below statements that can't fall thru.

        * tree-eh.c (lower_eh_constructs_2): Don't add assignments
        below statements that can't fall thru.

testsuite/
        * g++.dg/tree-ssa/pr41905.C: New testcase.

From-SVN: r154674
parent 6dc3bf56
2009-11-26 Michael Matz <matz@suse.de>
PR tree-optimization/41905
* tree-eh.c (lower_eh_constructs_2): Don't add assignments
below statements that can't fall thru.
2009-11-26 Michael Matz <matz@suse.de>
* builtins.c (expand_builtin_printf, expand_builtin_fprintf,
expand_builtin_sprintf): Remove.
(expand_builtin): Don't call them.
2009-11-26 Michael Matz <matz@suse.de>
PR tree-optimization/41905
* g++.dg/tree-ssa/pr41905.C: New testcase.
2009-11-25 Richard Henderson <rth@redhat.com>
* gcc.dg/vect/slp-21.c: Succeed with vect_extract_even_odd too.
......
/* { dg-do compile } */
/* { dg-options "-O2" } */
int foo() __attribute__((noreturn));
int bar() { return foo(); }
......@@ -1868,9 +1868,12 @@ lower_eh_constructs_2 (struct leh_state *state, gimple_stmt_iterator *gsi)
case GIMPLE_ASSIGN:
/* If the stmt can throw use a new temporary for the assignment
to a LHS. This makes sure the old value of the LHS is
available on the EH edge. */
available on the EH edge. Only do so for statements that
potentially fall thru (no noreturn calls e.g.), otherwise
this new assignment might create fake fallthru regions. */
if (stmt_could_throw_p (stmt)
&& gimple_has_lhs (stmt)
&& gimple_stmt_may_fallthru (stmt)
&& !tree_could_throw_p (gimple_get_lhs (stmt))
&& is_gimple_reg_type (TREE_TYPE (gimple_get_lhs (stmt))))
{
......
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