aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/reload1.c6
2 files changed, 11 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index f04aff9..a749add 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,10 @@
2003-11-11 Eric Christopher <echristo@redhat.com>
+ * reload1.c (reload): Verify that addresses for
+ reg_equiv_* are valid for the architecture.
+
+2003-11-11 Eric Christopher <echristo@redhat.com>
+
* function.c (purge_addressof_1): Add libcall check.
Remove test for cached replacements on fallback case.
Simplify mode comparisons. Add libcall test for
diff --git a/gcc/reload1.c b/gcc/reload1.c
index 717489f..7bfc142 100644
--- a/gcc/reload1.c
+++ b/gcc/reload1.c
@@ -774,6 +774,12 @@ reload (rtx first, int global)
= force_const_mem (GET_MODE (SET_DEST (set)), x);
if (!reg_equiv_memory_loc[i])
continue;
+ /* As above. Later passes of reload assume that
+ all addresses found in the reg_equiv_* arrays
+ were originally legitimate. */
+ if (!memory_operand (reg_equiv_memory_loc[i], VOIDmode))
+ reg_equiv_memory_loc[i] = NULL_RTX;
+
}
}
else