From 346967d1cf5cf5f53a48aa8483365e3d1405ff2d Mon Sep 17 00:00:00 2001 From: Segher Boessenkool <segher@kernel.crashing.org> Date: Sun, 6 Jun 2010 13:38:46 +0200 Subject: [PATCH] re PR bootstrap/44427 (genautomata uses more than 1.5GB of RAM on powerpc64-linux) gcc/ChangeLog 2010-06-06 Segher Boessenkool <segher@kernel.crashing.org> PR bootstrap/44427 PR bootstrap/44428 genautomata.c (SET_BIT, CLEAR_BIT, TEST_BIT): Make these macros endianness-independent. From-SVN: r160338 --- gcc/ChangeLog | 7 +++++++ gcc/genautomata.c | 11 +++++++---- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 9dddeb18c965..d353dfbb61dc 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2010-06-06 Segher Boessenkool <segher@kernel.crashing.org> + + PR bootstrap/44427 + PR bootstrap/44428 + genautomata.c (SET_BIT, CLEAR_BIT, TEST_BIT): Make these macros + endianness-independent. + 2010-06-05 Steven Bosscher <steven@gcc.gnu.org> * c-common.c: Move to c-family/. diff --git a/gcc/genautomata.c b/gcc/genautomata.c index ad7caa611b59..f7493c7071de 100644 --- a/gcc/genautomata.c +++ b/gcc/genautomata.c @@ -3314,15 +3314,18 @@ finish_alt_states (void) /* Set bit number bitno in the bit string. The macro is not side effect proof. */ #define SET_BIT(bitstring, bitno) \ - (((char *) (bitstring)) [(bitno) / CHAR_BIT] |= 1 << (bitno) % CHAR_BIT) + ((bitstring)[(bitno) / (sizeof (*(bitstring)) * CHAR_BIT)] |= \ + (HOST_WIDE_INT)1 << (bitno) % (sizeof (*(bitstring)) * CHAR_BIT)) #define CLEAR_BIT(bitstring, bitno) \ - (((char *) (bitstring)) [(bitno) / CHAR_BIT] &= ~(1 << (bitno) % CHAR_BIT)) + ((bitstring)[(bitno) / (sizeof (*(bitstring)) * CHAR_BIT)] &= \ + ~((HOST_WIDE_INT)1 << (bitno) % (sizeof (*(bitstring)) * CHAR_BIT))) /* Test if bit number bitno in the bitstring is set. The macro is not side effect proof. */ -#define TEST_BIT(bitstring, bitno) \ - (((char *) (bitstring)) [(bitno) / CHAR_BIT] >> (bitno) % CHAR_BIT & 1) +#define TEST_BIT(bitstring, bitno) \ + ((bitstring)[(bitno) / (sizeof (*(bitstring)) * CHAR_BIT)] >> \ + (bitno) % (sizeof (*(bitstring)) * CHAR_BIT) & 1) -- GitLab