From 813ab1d7df3a0c7c2de2c8e5c30ce6be69e0a6dd Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Wed, 26 Mar 2008 12:32:22 +0000 Subject: [PATCH] re PR target/31232 (Problem while compiling gcc for xstormy16-elf) PR target/31232 * config/stormy16/stormy16.c (xstormy16_legitimate_address_p): Do not allow INT+INT as a legitimate addressing mode. From-SVN: r133598 --- gcc/ChangeLog | 6 ++++++ gcc/config/stormy16/stormy16.c | 7 ++++++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 571d9400c0f..d31e6adbe14 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2008-03-26 Nick Clifton + + PR target/31232 + * config/stormy16/stormy16.c (xstormy16_legitimate_address_p): Do + not allow INT+INT as a legitimate addressing mode. + 2008-03-26 Richard Guenther * tree-flow.h (widen_bitfield): Remove declaration. diff --git a/gcc/config/stormy16/stormy16.c b/gcc/config/stormy16/stormy16.c index a4c17463194..078b367554f 100644 --- a/gcc/config/stormy16/stormy16.c +++ b/gcc/config/stormy16/stormy16.c @@ -629,7 +629,12 @@ xstormy16_legitimate_address_p (enum machine_mode mode ATTRIBUTE_UNUSED, if (GET_CODE (x) == PLUS && LEGITIMATE_ADDRESS_INTEGER_P (XEXP (x, 1), 0)) - x = XEXP (x, 0); + { + x = XEXP (x, 0); + /* PR 31232: Do not allow INT+INT as an address. */ + if (GET_CODE (x) == CONST_INT) + return 0; + } if ((GET_CODE (x) == PRE_MODIFY && GET_CODE (XEXP (XEXP (x, 1), 1)) == CONST_INT) -- 2.30.2