aboutsummaryrefslogtreecommitdiff
path: root/gcc/except.c
diff options
context:
space:
mode:
authorJason Merrill <jason@yorick.cygnus.com>1997-12-04 19:52:49 +0000
committerJason Merrill <jason@gcc.gnu.org>1997-12-04 14:52:49 -0500
commit5dfa752018249484983db552c13adf909e7c222f (patch)
treebc8ef61426f97090479fe5d56f41d3f34073858c /gcc/except.c
parent4d7b7169c52816f9aadbfca9a0afa7a39bd77e84 (diff)
downloadgcc-5dfa752018249484983db552c13adf909e7c222f.zip
gcc-5dfa752018249484983db552c13adf909e7c222f.tar.gz
gcc-5dfa752018249484983db552c13adf909e7c222f.tar.bz2
* except.c (expand_end_all_catch): Fix for sjlj exceptions.
From-SVN: r16950
Diffstat (limited to 'gcc/except.c')
-rw-r--r--gcc/except.c13
1 files changed, 8 insertions, 5 deletions
diff --git a/gcc/except.c b/gcc/except.c
index c37f89d..9a2f6a0 100644
--- a/gcc/except.c
+++ b/gcc/except.c
@@ -1390,16 +1390,19 @@ expand_start_all_catch ()
void
expand_end_all_catch ()
{
- rtx new_catch_clause, outer_context;
+ rtx new_catch_clause, outer_context = NULL_RTX;
if (! doing_eh (1))
return;
- outer_context = ehstack.top->entry->outer_context;
if (! exceptions_via_longjmp)
- /* Finish the rethrow region. size_zero_node is just a NOP. */
- expand_eh_region_end (size_zero_node);
-
+ {
+ outer_context = ehstack.top->entry->outer_context;
+
+ /* Finish the rethrow region. size_zero_node is just a NOP. */
+ expand_eh_region_end (size_zero_node);
+ }
+
/* Code to throw out to outer context, if we fall off end of catch
handlers. This is rethrow (Lresume, same id, same obj) in the
documentation. We use Lresume because we know that it will throw