re PR middle-end/44765 (gen_rtx_REG can make out-of-bounds access for INVALID_REGNUM)
authorJoern Rennecke <amylaar@spamcop.net>
Thu, 4 Nov 2010 12:41:07 +0000 (12:41 +0000)
committerJoern Rennecke <amylaar@gcc.gnu.org>
Thu, 4 Nov 2010 12:41:07 +0000 (12:41 +0000)
PR middle-end/44765
* emit-rtl.c (gen_rtx_REG): Before using PIC_OFFSET_TABLE_REGNUM
as an index, check it is not INVALID_REGNUM.

From-SVN: r166307

gcc/ChangeLog
gcc/emit-rtl.c

index 2cfb60a0cf0dfd71ff9584290d41c05da351a646..213846d78d99d10c566bb45eed0ff2f215853463 100644 (file)
@@ -1,3 +1,9 @@
+2010-10-04  Joern Rennecke  <amylaar@spamcop.net>
+
+       PR middle-end/44765
+       * emit-rtl.c (gen_rtx_REG): Before using PIC_OFFSET_TABLE_REGNUM
+       as an index, check it is not INVALID_REGNUM.
+
 2010-11-04  Ira Rosen  <irar@il.ibm.com>
 
        PR tree-optimization/46213
index eb4ea2a97d82e69b60bd8dd5fd656ce5d039a7c7..60fe39b1ebf5458c21894a0ceead36fe9fa54320 100644 (file)
@@ -603,6 +603,7 @@ gen_rtx_REG (enum machine_mode mode, unsigned int regno)
        return return_address_pointer_rtx;
 #endif
       if (regno == (unsigned) PIC_OFFSET_TABLE_REGNUM
+         && PIC_OFFSET_TABLE_REGNUM != INVALID_REGNUM
          && fixed_regs[PIC_OFFSET_TABLE_REGNUM])
        return pic_offset_table_rtx;
       if (regno == STACK_POINTER_REGNUM)