summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjason <jason@138bc75d-0d04-0410-961f-82ee72b054a4>1997-12-04 19:52:49 +0000
committerjason <jason@138bc75d-0d04-0410-961f-82ee72b054a4>1997-12-04 19:52:49 +0000
commitc401b398287d1e425676d149dba945b6d34f329a (patch)
treebc8ef61426f97090479fe5d56f41d3f34073858c
parent64916c7632e9724463d83b6f70f4f16366478ae5 (diff)
downloadgcc-c401b398287d1e425676d149dba945b6d34f329a.tar.gz
* except.c (expand_end_all_catch): Fix for sjlj exceptions.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@16950 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/ChangeLog4
-rw-r--r--gcc/except.c13
2 files changed, 12 insertions, 5 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index fba73b312ca..4394e75bf15 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,7 @@
+Thu Dec 4 11:51:00 1997 Jason Merrill <jason@yorick.cygnus.com>
+
+ * except.c (expand_end_all_catch): Fix for sjlj exceptions.
+
Thu Dec 4 12:30:40 1997 J"orn Rennecke <amylaar@cygnus.co.uk>
* sh.c (final_prescan_insn): Use local label prefix
diff --git a/gcc/except.c b/gcc/except.c
index c37f89d9087..9a2f6a0e3dd 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