aboutsummaryrefslogtreecommitdiff
path: root/gcc/except.c
diff options
context:
space:
mode:
authorJason Merrill <jason@yorick.cygnus.com>1997-09-18 23:33:56 +0000
committerJason Merrill <jason@gcc.gnu.org>1997-09-18 19:33:56 -0400
commit6020d3605c14364b52b635a93ef2b93ac39108ba (patch)
tree0c64bd1926558404f2fe6db31186a19420fcc900 /gcc/except.c
parentfeb5876a0b33803a8ff6a5ba645b1f6f58647b27 (diff)
downloadgcc-6020d3605c14364b52b635a93ef2b93ac39108ba.zip
gcc-6020d3605c14364b52b635a93ef2b93ac39108ba.tar.gz
gcc-6020d3605c14364b52b635a93ef2b93ac39108ba.tar.bz2
final.c (final_scan_insn): Hand BARRIERs off to the dwarf2 code.
* final.c (final_scan_insn): Hand BARRIERs off to the dwarf2 code. * dwarf2out.c (dwarf2out_frame_debug): Pass the whole insn along. (dwarf2out_stack_adjust): A BARRIER resets the args space to 0. * except.c (end_eh_unwinder): Subtract 1 from return address. * libgcc2.c (__throw): Likewise. (find_exception_handler): Don't change PC here. Compare end with >. From-SVN: r15554
Diffstat (limited to 'gcc/except.c')
-rw-r--r--gcc/except.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/gcc/except.c b/gcc/except.c
index 7929e9c..ae75175 100644
--- a/gcc/except.c
+++ b/gcc/except.c
@@ -1668,6 +1668,8 @@ end_eh_unwinder ()
/* Get the address we need to use to determine what exception
handler should be invoked, and store it in __eh_pc. */
return_val_rtx = eh_outer_context (return_val_rtx);
+ return_val_rtx = expand_binop (Pmode, sub_optab, return_val_rtx, GEN_INT (1),
+ NULL_RTX, 0, OPTAB_LIB_WIDEN);
emit_move_insn (eh_saved_pc_rtx, return_val_rtx);
/* Either set things up so we do a return directly to __throw, or