Looks like we again are going to have problems with libcxx tests that are overly specific in their dependency on clang's diagnostics. This reverts commit 6542cb55a3eb115b1c3592514590a19987ffc498.
55 lines
1.1 KiB
Objective-C
55 lines
1.1 KiB
Objective-C
// RUN: %clang_cc1 -fobjc-runtime=macosx-fragile -fsyntax-only -verify -Wno-objc-root-class %s
|
|
// RUN: %clang_cc1 -std=c89 -fobjc-runtime=macosx-fragile -fsyntax-only -verify -Wno-objc-root-class %s
|
|
|
|
|
|
#if __STDC_VERSION__ >= 201112L
|
|
|
|
#if !__has_feature(objc_c_static_assert)
|
|
#error failed
|
|
#endif
|
|
|
|
#if !__has_extension(objc_c_static_assert)
|
|
#error failed
|
|
#endif
|
|
|
|
@interface A {
|
|
int a;
|
|
_Static_assert(1, "");
|
|
_Static_assert(0, ""); // expected-error {{static_assert failed}}
|
|
|
|
_Static_assert(a, ""); // expected-error {{use of undeclared identifier 'a'}}
|
|
_Static_assert(sizeof(a), ""); // expected-error {{use of undeclared identifier 'a'}}
|
|
}
|
|
|
|
_Static_assert(1, "");
|
|
|
|
@end
|
|
|
|
struct S {
|
|
@defs(A);
|
|
};
|
|
|
|
#else
|
|
|
|
// _Static_assert is available before C11 as an extension, but -pedantic
|
|
// warns on it.
|
|
#if __has_feature(objc_c_static_assert)
|
|
#error failed
|
|
#endif
|
|
|
|
#if !__has_extension(objc_c_static_assert)
|
|
#error failed
|
|
#endif
|
|
|
|
@interface A {
|
|
int a;
|
|
_Static_assert(1, "");
|
|
_Static_assert(0, ""); // expected-error {{static_assert failed}}
|
|
}
|
|
|
|
_Static_assert(1, "");
|
|
|
|
@end
|
|
|
|
#endif
|