diff options
author | Stuart Hastings <stuart@apple.com> | 2006-08-01 16:17:53 +0000 |
---|---|---|
committer | Stuart Hastings <stuart@gcc.gnu.org> | 2006-08-01 16:17:53 +0000 |
commit | 4fbbe6941cb824dc2defe3172263efac648ec27a (patch) | |
tree | 0404f507b2c1b0a334fec96e68cd3a10c4e8d0cd | |
parent | 6193b8b7edb139ddf475352a0822482f16be4a2d (diff) | |
download | gcc-4fbbe6941cb824dc2defe3172263efac648ec27a.zip gcc-4fbbe6941cb824dc2defe3172263efac648ec27a.tar.gz gcc-4fbbe6941cb824dc2defe3172263efac648ec27a.tar.bz2 |
* rtl.h (UINTVAL) New.
* config/rs6000/rs6000.c (SMALL_INT) Use it.
* testsuite/gcc.dg/20060801-1.c: New.
From-SVN: r115855
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/config/rs6000/rs6000.c | 2 | ||||
-rw-r--r-- | gcc/rtl.h | 1 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/20060801-1.c | 9 |
4 files changed, 17 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index b8aee3b..8cf2670 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2006-08-01 Stuart Hastings <stuart@apple.com> + + * rtl.h (UINTVAL) New. + * config/rs6000/rs6000.c (SMALL_INT) Use it. + * testsuite/gcc.dg/20060801-1.c: New. + 2006-08-01 Daniel Jacobowitz <dan@codesourcery.com> PR debug/23336 diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c index c42bb9f..c988857 100644 --- a/gcc/config/rs6000/rs6000.c +++ b/gcc/config/rs6000/rs6000.c @@ -18105,7 +18105,7 @@ machopic_output_stub (FILE *file, const char *symb, const char *stub) position-independent addresses go into a reg. This is REG if non zero, otherwise we allocate register(s) as necessary. */ -#define SMALL_INT(X) ((unsigned) (INTVAL (X) + 0x8000) < 0x10000) +#define SMALL_INT(X) ((UINTVAL (X) + 0x8000) < 0x10000) rtx rs6000_machopic_legitimize_pic_address (rtx orig, enum machine_mode mode, @@ -996,6 +996,7 @@ enum label_kind /* For a CONST_INT rtx, INTVAL extracts the integer. */ #define INTVAL(RTX) XCWINT(RTX, 0, CONST_INT) +#define UINTVAL(RTX) ((unsigned HOST_WIDE_INT) INTVAL (RTX)) /* For a CONST_DOUBLE: For a VOIDmode, there are two integers CONST_DOUBLE_LOW is the diff --git a/gcc/testsuite/gcc.dg/20060801-1.c b/gcc/testsuite/gcc.dg/20060801-1.c new file mode 100644 index 0000000..7181f6b --- /dev/null +++ b/gcc/testsuite/gcc.dg/20060801-1.c @@ -0,0 +1,9 @@ +/* { dg-do compile { target { lp64 } } */ +/* { dg-options "-fPIC" } */ +char *ptr = 0; +char array[100]; +void +f() +{ + ptr = &array[0x100000000ULL]; /* A 33-bit constant. */ +} |