aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Henderson <rth@cygnus.com>1999-11-04 16:37:48 -0800
committerRichard Henderson <rth@gcc.gnu.org>1999-11-04 16:37:48 -0800
commita6028d444a2e956b8296e3b5232d89f36e6f3fbd (patch)
tree6fa20841e918a1f169187730f7f9b0fa855fc550 /gcc
parentbd695e1e9d018a98de8d09bd855574dc6e183ad9 (diff)
downloadgcc-a6028d444a2e956b8296e3b5232d89f36e6f3fbd.zip
gcc-a6028d444a2e956b8296e3b5232d89f36e6f3fbd.tar.gz
gcc-a6028d444a2e956b8296e3b5232d89f36e6f3fbd.tar.bz2
reg-stack.c (convert_regs_1): Initialize target_stack->top after verifying an EH edge.
* reg-stack.c (convert_regs_1): Initialize target_stack->top after verifying an EH edge. From-SVN: r30402
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/reg-stack.c9
2 files changed, 11 insertions, 5 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 145a329..ccaede9 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,4 +1,9 @@
-Fri Nov 5 19:38:14 1999 Richard Henderson <rth@cygnus.com>
+Thu Nov 4 16:36:44 1999 Richard Henderson <rth@cygnus.com>
+
+ * reg-stack.c (convert_regs_1): Initialize target_stack->top
+ after verifying an EH edge.
+
+Thu Nov 4 16:36:36 1999 Richard Henderson <rth@cygnus.com>
* function.c (diddle_return_value): New.
(expand_function_end): Use it.
diff --git a/gcc/reg-stack.c b/gcc/reg-stack.c
index 4efaea1..ec7d069 100644
--- a/gcc/reg-stack.c
+++ b/gcc/reg-stack.c
@@ -2546,15 +2546,16 @@ convert_regs_1 (file, block)
HARD_REG_SET tmp;
CLEAR_HARD_REG_SET (tmp);
- GO_IF_HARD_REG_EQUAL (BLOCK_INFO (e->dest)->stack_in.reg_set,
- tmp, eh1);
+ GO_IF_HARD_REG_EQUAL (target_stack->reg_set, tmp, eh1);
abort();
eh1:
SET_HARD_REG_BIT (tmp, FIRST_STACK_REG);
- GO_IF_HARD_REG_EQUAL (BLOCK_INFO (e->src)->out_reg_set, tmp, eh2);
+ GO_IF_HARD_REG_EQUAL (regstack.reg_set, tmp, eh2);
abort();
- eh2:;
+ eh2:
+
+ target_stack->top = -1;
}
/* It is better to output directly to the end of the block