aboutsummaryrefslogtreecommitdiff
path: root/gcc/builtins.c
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2003-08-27 12:52:09 +0200
committerJakub Jelinek <jakub@gcc.gnu.org>2003-08-27 12:52:09 +0200
commitb7bc76e3212071f97d999e5e9fd302fe984dae4d (patch)
tree3e8fb1c2bde96aeaa58b82d6a0b7220780808412 /gcc/builtins.c
parent648bb15912c20dcc1a601bd0f7c35a8cdb26bbdf (diff)
downloadgcc-b7bc76e3212071f97d999e5e9fd302fe984dae4d.zip
gcc-b7bc76e3212071f97d999e5e9fd302fe984dae4d.tar.gz
gcc-b7bc76e3212071f97d999e5e9fd302fe984dae4d.tar.bz2
builtins.c (expand_builtin_expect_jump): Save pending_stack_adjust and restore it if returning NULL.
* builtins.c (expand_builtin_expect_jump): Save pending_stack_adjust and restore it if returning NULL. * gcc.dg/20030826-2.c: New test. From-SVN: r70844
Diffstat (limited to 'gcc/builtins.c')
-rw-r--r--gcc/builtins.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/gcc/builtins.c b/gcc/builtins.c
index 227bb49..37dc4e5 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;