1// RUN: %clang_cc1 -fobjc-runtime=macosx-fragile -fsyntax-only -verify -Wno-objc-root-class %s 2// RUN: %clang_cc1 -std=c89 -fobjc-runtime=macosx-fragile -fsyntax-only -verify -Wno-objc-root-class %s 3 4 5#if __STDC_VERSION__ >= 201112L 6 7#if !__has_feature(objc_c_static_assert) 8#error failed 9#endif 10 11#if !__has_extension(objc_c_static_assert) 12#error failed 13#endif 14 15@interface A { 16 int a; 17 _Static_assert(1, ""); 18 _Static_assert(0, ""); // expected-error {{static_assert failed}} 19 20 _Static_assert(a, ""); // expected-error {{use of undeclared identifier 'a'}} 21 _Static_assert(sizeof(a), ""); // expected-error {{use of undeclared identifier 'a'}} 22} 23 24_Static_assert(1, ""); 25 26@end 27 28struct S { 29 @defs(A); 30}; 31 32#else 33 34// _Static_assert is available before C11 as an extension, but -pedantic 35// warns on it. 36#if __has_feature(objc_c_static_assert) 37#error failed 38#endif 39 40#if !__has_extension(objc_c_static_assert) 41#error failed 42#endif 43 44@interface A { 45 int a; 46 _Static_assert(1, ""); 47 _Static_assert(0, ""); // expected-error {{static_assert failed}} 48} 49 50_Static_assert(1, ""); 51 52@end 53 54#endif 55