From bf9412cda74bd81b71a2d459fae173a4ed974c07 Mon Sep 17 00:00:00 2001 From: Joern Rennecke Date: Thu, 4 Nov 2010 12:41:07 +0000 Subject: [PATCH] re PR middle-end/44765 (gen_rtx_REG can make out-of-bounds access for INVALID_REGNUM) 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 | 6 ++++++ gcc/emit-rtl.c | 1 + 2 files changed, 7 insertions(+) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 2cfb60a0cf0..213846d78d9 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2010-10-04 Joern Rennecke + + 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 PR tree-optimization/46213 diff --git a/gcc/emit-rtl.c b/gcc/emit-rtl.c index eb4ea2a97d8..60fe39b1ebf 100644 --- a/gcc/emit-rtl.c +++ b/gcc/emit-rtl.c @@ -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)