aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Kenner <kenner@gcc.gnu.org>1996-04-25 14:05:09 -0400
committerRichard Kenner <kenner@gcc.gnu.org>1996-04-25 14:05:09 -0400
commit477efd500b645f92f6e9ee2997d94b7bbb5d6ab7 (patch)
tree46a204f07fddfa538d389ee69ebfb9ebef24e809 /gcc
parent5c7ad97ff3207a1e2114248f458505d8e31b8c60 (diff)
downloadgcc-477efd500b645f92f6e9ee2997d94b7bbb5d6ab7.zip
gcc-477efd500b645f92f6e9ee2997d94b7bbb5d6ab7.tar.gz
gcc-477efd500b645f92f6e9ee2997d94b7bbb5d6ab7.tar.bz2
(expand_builtin, case BUILT_IN_SETJMP): CLOBBER the static chain after
label at setjmp point. From-SVN: r11886
Diffstat (limited to 'gcc')
-rw-r--r--gcc/expr.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/gcc/expr.c b/gcc/expr.c
index 278cfb3..f61ff82 100644
--- a/gcc/expr.c
+++ b/gcc/expr.c
@@ -8593,6 +8593,10 @@ expand_builtin (exp, target, subtarget, mode, ignore)
make sure it's marked as used by this function. */
emit_insn (gen_rtx (USE, VOIDmode, hard_frame_pointer_rtx));
+ /* Mark the static chain as clobbered here so life information
+ doesn't get messed up for it. */
+ emit_insn (gen_rtx (CLOBBER, VOIDmode, static_chain_rtx));
+
/* Now put in the code to restore the frame pointer, and argument
pointer, if needed. The code below is from expand_end_bindings
in stmt.c; see detailed documentation there. */