summaryrefslogtreecommitdiff
path: root/gcc/except.c
diff options
context:
space:
mode:
authorwilson <wilson@138bc75d-0d04-0410-961f-82ee72b054a4>1998-11-11 13:48:34 +0000
committerwilson <wilson@138bc75d-0d04-0410-961f-82ee72b054a4>1998-11-11 13:48:34 +0000
commit9fb3709ed6cd4488ce419c61e217ff6fa12fd0e1 (patch)
tree30c56a07f1e568a39508d81091c29573ea010fed /gcc/except.c
parent07f4da33bba1e6a82c6020bd45f2ba19bef8faa7 (diff)
downloadgcc-9fb3709ed6cd4488ce419c61e217ff6fa12fd0e1.tar.gz
Fix x86 __throw -O0 -fpic compiler abort.
* except.c (expand_eh_return): Readd force_operand call lost in Sept 15 change. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@23606 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/except.c')
-rw-r--r--gcc/except.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/gcc/except.c b/gcc/except.c
index 6fa37f09718..ae6ede2f112 100644
--- a/gcc/except.c
+++ b/gcc/except.c
@@ -2637,7 +2637,9 @@ expand_eh_return ()
#ifdef RETURN_ADDR_OFFSET
tmp = plus_constant (tmp, -RETURN_ADDR_OFFSET);
#endif
- emit_move_insn (ra, tmp);
+ tmp = force_operand (tmp, ra);
+ if (tmp != ra)
+ emit_move_insn (ra, tmp);
/* Indicate that the registers are in fact used. */
emit_insn (gen_rtx_USE (VOIDmode, reg1));