Fix test after test changes added in da3dc00 caused the test to break
authorDouglas Yung <douglas.yung@sony.com>
Fri, 7 Feb 2020 02:17:04 +0000 (18:17 -0800)
committerDouglas Yung <douglas.yung@sony.com>
Fri, 7 Feb 2020 02:19:01 +0000 (18:19 -0800)
on platforms that default to an older C standard (like the PS4).

This should fix the test failure on the PS4 bots.

clang/test/Sema/constant-builtins.c

index ae3b913..fb70375 100644 (file)
@@ -1,5 +1,10 @@
+// RUN: %clang_cc1 -fsyntax-only %s -verify -pedantic -std=c99
+// RUN: %clang_cc1 -fsyntax-only %s -verify -pedantic -std=c11
+// RUN: %clang_cc1 -fsyntax-only %s -verify -pedantic -std=c17
 // RUN: %clang_cc1 -fsyntax-only %s -verify -pedantic
+#if __STDC_VERSION__ >= 201112L
 // expected-no-diagnostics
+#endif
 
 // Math stuff
 
@@ -25,6 +30,16 @@ short somefunc();
 
 short t = __builtin_constant_p(5353) ? 42 : somefunc();
 
+// The calls to _Static_assert and _Generic produce warnings if the compiler default standard is < c11
+#if __STDC_VERSION__ < 201112L
+// expected-warning@+9 {{'_Static_assert' is a C11 extension}}
+// expected-warning@+9 {{'_Static_assert' is a C11 extension}}
+// expected-warning@+9 {{'_Static_assert' is a C11 extension}}
+// expected-warning@+9 {{'_Static_assert' is a C11 extension}} expected-warning@+9 {{'_Generic' is a C11 extension}}
+// expected-warning@+9 {{'_Static_assert' is a C11 extension}} expected-warning@+9 {{'_Generic' is a C11 extension}}
+// expected-warning@+9 {{'_Static_assert' is a C11 extension}} expected-warning@+9 {{'_Generic' is a C11 extension}}
+#endif
+
 // PR44684
 _Static_assert((__builtin_clz)(1u) >= 15, "");
 _Static_assert((__builtin_popcount)(1u) == 1, "");
@@ -33,5 +48,8 @@ _Static_assert(_Generic(1u,unsigned:__builtin_clz)(1u) >= 15, "");
 _Static_assert(_Generic(1u,unsigned:__builtin_popcount)(1u) == 1, "");
 _Static_assert(_Generic(1u,unsigned:__builtin_ctz)(2u) == 1, "");
 
+#if __STDC_VERSION__ < 201112L
+// expected-warning@+3 {{'_Static_assert' is a C11 extension}}
+#endif
 __SIZE_TYPE__ strlen(const char*);
 _Static_assert((__builtin_constant_p(1) ? (***&strlen)("foo") : 0) == 3, "");