aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorMike Stump <mrs@gcc.gnu.org>1997-06-19 01:13:20 +0000
committerMike Stump <mrs@gcc.gnu.org>1997-06-19 01:13:20 +0000
commit16c8104062425d556e5b0f4bbe0747b0fb7c0351 (patch)
tree85a86cfff2628d273eace45104b41aee7ba8299c /gcc
parentc13210e902928f267ec425da4981b43aca6dc3c2 (diff)
downloadgcc-16c8104062425d556e5b0f4bbe0747b0fb7c0351.zip
gcc-16c8104062425d556e5b0f4bbe0747b0fb7c0351.tar.gz
gcc-16c8104062425d556e5b0f4bbe0747b0fb7c0351.tar.bz2
except.c (end_eh_unwinder): If we have a return instruction...
* except.c (end_eh_unwinder): If we have a return instruction, we have to make sure we use it and don't fall off the end of the function in the unwinder. Fixes EH codegen bug on vax-dec-vms From-SVN: r14258
Diffstat (limited to 'gcc')
-rw-r--r--gcc/except.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/gcc/except.c b/gcc/except.c
index 4701017..705e1a8 100644
--- a/gcc/except.c
+++ b/gcc/except.c
@@ -1652,6 +1652,14 @@ end_eh_unwinder ()
expand_leftover_cleanups ();
emit_label (end);
+
+#ifdef HAVE_return
+ if (HAVE_return)
+ {
+ emit_jump_insn (gen_return ());
+ emit_barrier ();
+ }
+#endif
}
/* If necessary, emit insns for the per function unwinder for the