aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.dg/fold-eqandshift-1.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/testsuite/gcc.dg/fold-eqandshift-1.c')
-rw-r--r--gcc/testsuite/gcc.dg/fold-eqandshift-1.c14
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();
}