summaryrefslogtreecommitdiff
path: root/gcc/except.c
diff options
context:
space:
mode:
authorjason <jason@138bc75d-0d04-0410-961f-82ee72b054a4>1997-09-18 23:33:56 +0000
committerjason <jason@138bc75d-0d04-0410-961f-82ee72b054a4>1997-09-18 23:33:56 +0000
commit24db272534ecb8907c141e4dd3285226c6a3236e (patch)
tree0c64bd1926558404f2fe6db31186a19420fcc900 /gcc/except.c
parent3c9cde31b39a1b8e24166e7edbf2e1ce3317ddc4 (diff)
downloadgcc-24db272534ecb8907c141e4dd3285226c6a3236e.tar.gz
* 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 >. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@15554 138bc75d-0d04-0410-961f-82ee72b054a4
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 7929e9c890e..ae75175393b 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