Commit d815d34e by Michael Matz Committed by Michael Matz

re PR c++/41906 (ICE with catch(...) and -fpermissive)

        PR c++/41906
        * tree-eh.c (lower_catch): Stop after expanding a catch-all.

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

From-SVN: r154704
parent b56ae8c7
2009-11-27 Michael Matz <matz@suse.de>
PR c++/41906
* tree-eh.c (lower_catch): Stop after expanding a catch-all.
2009-11-27 Richard Guenther <rguenther@suse.de>
* timevar.def (TV_LOOP_MOVE_INVARIANTS, TV_LOOP_UNSWITCH,
2009-11-27 Michael Matz <matz@suse.de>
PR c++/41906
* g++.dg/tree-ssa/pr41906.C: New testcase.
2009-11-27 Jakub Jelinek <jakub@redhat.com>
* gcc.dg/O16384.c: New test.
......
/* { dg-do compile } */
/* { dg-options "-fpermissive -w" } */
/* We aren't interested in the warning, but in the ICE. */
void foo();
extern void abort (void);
void bar()
{
try { foo(); }
catch (...) {}
catch (int) {abort ();}
}
......@@ -1666,6 +1666,8 @@ lower_catch (struct leh_state *state, gimple tp)
x = gimple_build_goto (out_label);
gimple_seq_add_stmt (&new_seq, x);
}
if (!c->type_list)
break;
}
gimple_try_set_cleanup (tp, new_seq);
......
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