reload1.c (eliminate_regs): Do not lose if eliminate_regs is called without reload...
authorJeffrey A Law <law@cygnus.com>
Sun, 22 Nov 1998 02:46:22 +0000 (02:46 +0000)
committerJeff Law <law@gcc.gnu.org>
Sun, 22 Nov 1998 02:46:22 +0000 (19:46 -0700)
        * reload1.c (eliminate_regs): Do not lose if eliminate_regs is called
        without reload having been called earlier.

From-SVN: r23748

gcc/ChangeLog
gcc/reload1.c

index 5f2ef26212b9979d068a6e4213cb6e052d518cba..3d51ad02087fdeada45cfdc73eeea1ba3bbc4ef2 100644 (file)
@@ -1,5 +1,8 @@
 Sat Nov 21 22:12:09 1998  Jeffrey A Law  (law@cygnus.com)
 
+       * reload1.c (eliminate_regs): Do not lose if eliminate_regs is called
+       without reload having been called earlier.
+
        * v850.c (ep_memory_operand): Offsets < 0 are not valid for EP
        addressing modes.
        (v850_reorg): Similarly.
index c6f81fae8f6acc6d4b1f57dded7d5b7212d97ee3..5610b22dfe6752c1c5524a4be70ed87f002e2fde 100644 (file)
@@ -2646,6 +2646,12 @@ eliminate_regs (x, mem_mode, insn)
   char *fmt;
   int copied = 0;
 
+  /* We can reach here without reload being run if we have an variable
+     definition in a file with no functions (for exmaple).  Ensure we
+     have a valid elimination table in such cases.  */
+  if (reg_eliminate == NULL)
+    init_elim_table ();
+
   switch (code)
     {
     case CONST_INT: