OSDN Git Service

PR testsuite/50796
[pf3gnuchains/gcc-fork.git] / gcc / testsuite / gcc.dg / c90-const-expr-2.c
index e69e367..ee57d55 100644 (file)
@@ -14,12 +14,20 @@ int *a;
 int b;
 long *c;
 
+#if defined(_LP64)
+#define ZERO 0L
+#elif defined(_WIN64)
+#define ZERO 0LL
+#else
+#define ZERO 0
+#endif
+
 /* Assertion that n is a null pointer constant: so the conditional expression
    has type 'int *' instead of 'void *'.
 */
 #define ASSERT_NPC(n)  (b = *(1 ? a : (n)))
 /* Assertion that n is not a null pointer constant: so the conditional
-   expresions has type 'void *' instead of 'int *'.
+   expressions has type 'void *' instead of 'int *'.
 */
 #define ASSERT_NOT_NPC(n)      (c = (1 ? a : (n)))
 
@@ -28,10 +36,10 @@ foo (void)
 {
   ASSERT_NPC (0);
   ASSERT_NPC ((void *)0);
-  ASSERT_NOT_NPC ((void *)(void *)0); /* { dg-bogus "incompatible" "bogus null pointer constant" { xfail *-*-* } } */
-  ASSERT_NOT_NPC ((void *)(char *)0); /* { dg-bogus "incompatible" "bogus null pointer constant" { xfail *-*-* } } */
-  ASSERT_NOT_NPC ((void *)(0, 0)); /* { dg-bogus "incompatible" "bogus null pointer constant" { xfail *-*-* } } */
-  ASSERT_NOT_NPC ((void *)(&"Foobar"[0] - &"Foobar"[0])); /* { dg-bogus "incompatible" "bogus null pointer constant" { xfail *-*-* } } */
+  ASSERT_NOT_NPC ((void *)(void *)0); /* { dg-bogus "incompatible" "bogus null pointer constant" } */
+  ASSERT_NOT_NPC ((void *)(char *)0); /* { dg-bogus "incompatible" "bogus null pointer constant" } */
+  ASSERT_NOT_NPC ((void *)(0, ZERO)); /* { dg-bogus "incompatible" "bogus null pointer constant" } */
+  ASSERT_NOT_NPC ((void *)(&"Foobar"[0] - &"Foobar"[0])); /* { dg-bogus "incompatible" "bogus null pointer constant" } */
   /* This last one is a null pointer constant in C99 only.  */
-  ASSERT_NOT_NPC ((void *)(1 ? 0 : (0, 0))); /* { dg-bogus "incompatible" "bogus null pointer constant" { xfail *-*-* } } */
+  ASSERT_NOT_NPC ((void *)(1 ? ZERO : (0, ZERO))); /* { dg-bogus "incompatible" "bogus null pointer constant" } */
 }