diff options
Diffstat (limited to 'gcc/testsuite/gcc.dg/fold-eqandshift-1.c')
-rw-r--r-- | gcc/testsuite/gcc.dg/fold-eqandshift-1.c | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/gcc/testsuite/gcc.dg/fold-eqandshift-1.c b/gcc/testsuite/gcc.dg/fold-eqandshift-1.c index 34906bad020..055f398af0b 100644 --- a/gcc/testsuite/gcc.dg/fold-eqandshift-1.c +++ b/gcc/testsuite/gcc.dg/fold-eqandshift-1.c @@ -25,15 +25,25 @@ int test4(int d) return (d >> 3) & 4; } +#if __INT_MAX__ == 32767 +#define INT_BITS 16 +#elif __INT_MAX__ == 2147483647 +#define INT_BITS 32 +#elif __INT_MAX__ == 9223372036854775807 +#define INT_BITS 64 +#else +#error Please add support for your target here. +#endif + void test5(int e) { - if ((e >> 31) & 64) + if ((e >> (INT_BITS - 1)) & 64) foo(); } void test6(unsigned int f) { - if ((f >> 31) & 64) + if ((f >> (INT_BITS - 1)) & 64) foo(); } |