From 488b20dd1a999b7b5346402604987a382aefb9b7 Mon Sep 17 00:00:00 2001 From: echristo Date: Wed, 12 Nov 2003 07:24:25 +0000 Subject: [PATCH] 2003-11-11 Eric Christopher * reload1.c (reload): Verify that addresses for reg_equiv_* are valid for the architecture. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@73487 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/ChangeLog | 5 +++++ gcc/reload1.c | 6 ++++++ 2 files changed, 11 insertions(+) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index f04aff9802a..a749add7ee8 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,10 @@ 2003-11-11 Eric Christopher + * reload1.c (reload): Verify that addresses for + reg_equiv_* are valid for the architecture. + +2003-11-11 Eric Christopher + * 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 717489f3216..7bfc142ba95 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 -- 2.11.4.GIT