aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Christopher <echristo@redhat.com>2003-11-12 07:24:25 +0000
committerEric Christopher <echristo@gcc.gnu.org>2003-11-12 07:24:25 +0000
commitbbbbbbe7c633632115ac072e2f7fe30562464f6d (patch)
tree9f068397ade5ba53706ce72388df6c3b14571033
parentf9d52373f85b16816d9068bd855df229f4be8d4b (diff)
downloadgcc-bbbbbbe7c633632115ac072e2f7fe30562464f6d.zip
gcc-bbbbbbe7c633632115ac072e2f7fe30562464f6d.tar.gz
gcc-bbbbbbe7c633632115ac072e2f7fe30562464f6d.tar.bz2
reload1.c (reload): Verify that addresses for reg_equiv_* are valid for the architecture.
2003-11-11 Eric Christopher <echristo@redhat.com> * reload1.c (reload): Verify that addresses for reg_equiv_* are valid for the architecture. From-SVN: r73487
-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