aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/cselib.c5
2 files changed, 10 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 6515701..a76c950 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,10 @@
+2010-03-31 Jakub Jelinek <jakub@redhat.com>
+
+ PR bootstrap/43596
+ * cselib.c (cselib_process_insn): Clear cselib_current_insn
+ even before returning from label, setjmp call or volatile asm
+ handling.
+
2010-03-31 Richard Guenther <rguenther@suse.de>
PR middle-end/43600
diff --git a/gcc/cselib.c b/gcc/cselib.c
index 18807ca..f46c5ec 100644
--- a/gcc/cselib.c
+++ b/gcc/cselib.c
@@ -2155,12 +2155,13 @@ cselib_process_insn (rtx insn)
&& MEM_VOLATILE_P (PATTERN (insn))))
{
cselib_reset_table (next_uid);
+ cselib_current_insn = NULL_RTX;
return;
}
if (! INSN_P (insn))
{
- cselib_current_insn = 0;
+ cselib_current_insn = NULL_RTX;
return;
}
@@ -2202,7 +2203,7 @@ cselib_process_insn (rtx insn)
if (GET_CODE (XEXP (x, 0)) == CLOBBER)
cselib_invalidate_rtx (XEXP (XEXP (x, 0), 0));
- cselib_current_insn = 0;
+ cselib_current_insn = NULL_RTX;
if (n_useless_values > MAX_USELESS_VALUES
/* remove_useless_values is linear in the hash table size. Avoid