aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-eh.c
diff options
context:
space:
mode:
authorMichael Matz <matz@suse.de>2009-11-27 13:08:58 +0000
committerMichael Matz <matz@gcc.gnu.org>2009-11-27 13:08:58 +0000
commitd815d34e463182d0112bdf81f38df55eef2ed6de (patch)
treecb170e70a64741e1f96f846b2cff532d0544118f /gcc/tree-eh.c
parentb56ae8c7c7a09b0dfe04cf1b5d8ef1e96a8e6b0c (diff)
downloadgcc-d815d34e463182d0112bdf81f38df55eef2ed6de.zip
gcc-d815d34e463182d0112bdf81f38df55eef2ed6de.tar.gz
gcc-d815d34e463182d0112bdf81f38df55eef2ed6de.tar.bz2
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
Diffstat (limited to 'gcc/tree-eh.c')
-rw-r--r--gcc/tree-eh.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/gcc/tree-eh.c b/gcc/tree-eh.c
index dde343c..1a9e7b5 100644
--- a/gcc/tree-eh.c
+++ b/gcc/tree-eh.c
@@ -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);