diff options
author | jakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4> | 2003-08-27 10:52:09 +0000 |
---|---|---|
committer | jakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4> | 2003-08-27 10:52:09 +0000 |
commit | 0d21cbc776f7eff52137e72df2aa9f704fd1355a (patch) | |
tree | 3e8fb1c2bde96aeaa58b82d6a0b7220780808412 /gcc/builtins.c | |
parent | 0fee47f4b75b538c02375f8bf0e4b23ccd107fac (diff) | |
download | ppe42-gcc-0d21cbc776f7eff52137e72df2aa9f704fd1355a.tar.gz ppe42-gcc-0d21cbc776f7eff52137e72df2aa9f704fd1355a.zip |
* builtins.c (expand_builtin_expect_jump): Save pending_stack_adjust
and restore it if returning NULL.
* gcc.dg/20030826-2.c: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@70844 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/builtins.c')
-rw-r--r-- | gcc/builtins.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/gcc/builtins.c b/gcc/builtins.c index 227bb49c32e..37dc4e5eaa2 100644 --- a/gcc/builtins.c +++ b/gcc/builtins.c @@ -4330,6 +4330,7 @@ expand_builtin_expect_jump (tree exp, rtx if_false_label, rtx if_true_label) && (integer_zerop (arg1) || integer_onep (arg1))) { int num_jumps = 0; + int save_pending_stack_adjust = pending_stack_adjust; rtx insn; /* If we fail to locate an appropriate conditional jump, we'll @@ -4421,7 +4422,10 @@ expand_builtin_expect_jump (tree exp, rtx if_false_label, rtx if_true_label) /* If no jumps were modified, fail and do __builtin_expect the normal way. */ if (num_jumps == 0) - ret = NULL_RTX; + { + ret = NULL_RTX; + pending_stack_adjust = save_pending_stack_adjust; + } } return ret; |