OSDN Git Service

gcc/ChangeLog
authorsegher <segher@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 6 Jun 2010 11:38:46 +0000 (11:38 +0000)
committersegher <segher@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 6 Jun 2010 11:38:46 +0000 (11:38 +0000)
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@160338 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/genautomata.c

index 9dddeb1..d353dfb 100644 (file)
@@ -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/.
index ad7caa6..f7493c7 100644 (file)
@@ -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)
 
 \f