OSDN Git Service

2003-11-11 Eric Christopher <echristo@redhat.com>
authorechristo <echristo@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 12 Nov 2003 07:24:25 +0000 (07:24 +0000)
committerechristo <echristo@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 12 Nov 2003 07:24:25 +0000 (07:24 +0000)
        * 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
gcc/reload1.c

index f04aff9..a749add 100644 (file)
@@ -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
index 717489f..7bfc142 100644 (file)
@@ -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