From d2ae3ff54e52449707326c83c1286d0928e25817 Mon Sep 17 00:00:00 2001 From: Zack Weinberg Date: Wed, 24 Feb 1999 11:09:08 +0000 Subject: [PATCH] New testcase for cpp, written by Kaveh Ghazi From-SVN: r25398 --- gcc/testsuite/gcc.dg/cpp-if3.c | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 gcc/testsuite/gcc.dg/cpp-if3.c diff --git a/gcc/testsuite/gcc.dg/cpp-if3.c b/gcc/testsuite/gcc.dg/cpp-if3.c new file mode 100644 index 00000000000..2d5b67603dd --- /dev/null +++ b/gcc/testsuite/gcc.dg/cpp-if3.c @@ -0,0 +1,23 @@ +/* { dg-do preprocess } */ +/* { dg-options -pedantic-errors } */ + +#define U_MAX 4294967295U +#define ULL_MAX 18446744073709551615ULL +#define LL_MAX 9223372036854775807LL +#define LL_MIN (-LL_MAX-1) + +/* Check simple truncation. */ +#if U_MAX == ULL_MAX || LL_MIN == 0 || LL_MAX == -1 +#error "simple truncation" /* { dg-bogus "trunc" "simple truncation" } */ +#endif + +/* Check left/right shifting with all bits set and with one bit set. */ +#if !(~0ULL >> 63) || !(~0ULL << 63) || !(~0LL >> 63) || !(~0LL << 63) || \ + !(LL_MIN >> 63) || !(1LL << 63) || !(ULL_MAX >> 63) || !(1ULL << 63) +#error "bit shift truncation" /* { dg-bogus "trunc" "bit shift truncation" } */ +#endif + +/* Check math expressions. */ +#if (2ULL * U_MAX < U_MAX) || (1ULL + U_MAX < U_MAX) +#error "math truncation" /* { dg-bogus "trunc" "math truncation" } */ +#endif -- 2.30.2