forked from OSchip/llvm-project
132 lines
5.3 KiB
C
132 lines
5.3 KiB
C
// RUN: %clang_cc1 "-triple" "x86_64-apple-ios13.1-macabi" -fsyntax-only -verify %s
|
|
// RUN: %clang_cc1 "-triple" "x86_64-apple-ios13.1-macabi" -fapplication-extension -D APPEXT -fsyntax-only -verify %s
|
|
|
|
#ifdef APPEXT
|
|
|
|
#define maccatalyst maccatalyst_app_extension
|
|
#define macCatalyst maccatalyst_app_extension
|
|
#define ios ios_app_extension
|
|
|
|
#endif
|
|
|
|
void f0(int) __attribute__((availability(maccatalyst,introduced=2.0,deprecated=9.1))); // expected-note {{'f0' has been explicitly marked deprecated here}}
|
|
void f1(int) __attribute__((availability(maccatalyst,introduced=2.1)));
|
|
void f2(int) __attribute__((availability(macCatalyst,introduced=2.0,deprecated=9.0))); // expected-note {{'f2' has been explicitly marked deprecated here}}
|
|
void f3(int) __attribute__((availability(maccatalyst,introduced=3.0, obsoleted=9.0))); // expected-note {{'f3' has been explicitly marked unavailable here}}
|
|
void f32(int) __attribute__((availability(maccatalyst,introduced=3.0, obsoleted=9.0))); // expected-note {{'f32' has been explicitly marked unavailable here}}
|
|
|
|
|
|
void f5(int) __attribute__((availability(maccatalyst,introduced=2.0))) __attribute__((availability(maccatalyst,deprecated=9.0))); // expected-note {{'f5' has been explicitly marked deprecated here}}
|
|
void f6(int) __attribute__((availability(maccatalyst,deprecated=9.0))); // expected-note {{'f6' has been explicitly marked deprecated here}}
|
|
void f6(int) __attribute__((availability(macCatalyst,introduced=2.0)));
|
|
|
|
void f7(void) // expected-note {{'f7' has been explicitly marked deprecated here}}
|
|
__attribute__((availability(maccatalyst,introduced=3.0, deprecated=4.0)))
|
|
__attribute__((availability(ios,introduced=2.0, deprecated=5.0)));
|
|
|
|
void f8(void) // expected-note {{'f8' has been explicitly marked unavailable here}}
|
|
__attribute__((availability(maccatalyst,introduced=3.0, obsoleted=4.0)))
|
|
__attribute__((availability(ios,introduced=2.0, obsoleted=5.0)));
|
|
|
|
void f9(void) // expected-note {{'f9' has been explicitly marked unavailable here}}
|
|
__attribute__((availability(maccatalyst,unavailable)))
|
|
__attribute__((availability(ios,introduced=2.0)));
|
|
|
|
void test() {
|
|
f0(0);
|
|
#ifndef APPEXT
|
|
// expected-warning@-2 {{'f0' is deprecated: first deprecated in macCatalyst 9.1}}
|
|
#else
|
|
// expected-warning@-4 {{'f0' is deprecated: first deprecated in macCatalyst (App Extension) 9.1}}
|
|
#endif
|
|
f1(0);
|
|
f2(0);
|
|
#ifndef APPEXT
|
|
// expected-warning@-2 {{'f2' is deprecated: first deprecated in macCatalyst 9.0}}
|
|
#else
|
|
// expected-warning@-4 {{'f2' is deprecated: first deprecated in macCatalyst (App Extension) 9.0}}
|
|
#endif
|
|
f3(0);
|
|
#ifndef APPEXT
|
|
// expected-error@-2 {{'f3' is unavailable: obsoleted in macCatalyst 9.0}}
|
|
#else
|
|
// expected-error@-4 {{'f3' is unavailable: obsoleted in macCatalyst (App Extension) 9.0}}
|
|
#endif
|
|
f32(0);
|
|
#ifndef APPEXT
|
|
// expected-error@-2 {{'f32' is unavailable: obsoleted in macCatalyst 9.0}}
|
|
#else
|
|
// expected-error@-4 {{'f32' is unavailable: obsoleted in macCatalyst (App Extension) 9.0}}
|
|
#endif
|
|
f5(0); // expected-warning{{'f5' is deprecated: first deprecated in macCatalyst}}
|
|
f6(0); // expected-warning{{'f6' is deprecated: first deprecated in macCatalyst}}
|
|
|
|
f7();
|
|
#ifndef APPEXT
|
|
// expected-warning@-2 {{'f7' is deprecated: first deprecated in macCatalyst 4.0}}
|
|
#else
|
|
// expected-warning@-4 {{'f7' is deprecated: first deprecated in macCatalyst (App Extension) 4.0}}
|
|
#endif
|
|
f8();
|
|
#ifndef APPEXT
|
|
// expected-error@-2 {{'f8' is unavailable: obsoleted in macCatalyst 4.0}}
|
|
#else
|
|
// expected-error@-4 {{'f8' is unavailable: obsoleted in macCatalyst (App Extension) 4.0}}
|
|
#endif
|
|
f9(); // expected-error {{'f9' is unavailable}}
|
|
}
|
|
|
|
// Don't inherit "deprecated"/"obsoleted" from iOS for Mac Catalyst.
|
|
|
|
void f100(void)
|
|
__attribute__((availability(maccatalyst,introduced=3.0)))
|
|
__attribute__((availability(ios,introduced=2.0, deprecated=5.0)));
|
|
|
|
void f101(void)
|
|
__attribute__((availability(maccatalyst,introduced=3.0)))
|
|
__attribute__((availability(ios,introduced=2.0, obsoleted=5.0)));
|
|
|
|
void f102(void)
|
|
__attribute__((availability(maccatalyst,introduced=3.0)))
|
|
__attribute__((availability(ios,unavailable)));
|
|
|
|
void f103(void)
|
|
__attribute__((availability(ios,unavailable)));
|
|
|
|
void f103(void)
|
|
__attribute__((availability(maccatalyst,introduced=3.0)));
|
|
|
|
void dontInheritObsoletedDeprecated() {
|
|
f100();
|
|
f101();
|
|
f102();
|
|
f103();
|
|
}
|
|
|
|
// Inherit the ios availability when Mac Catalyst isn't given.
|
|
|
|
void f202(void) __attribute__((availability(ios,introduced=2.0, deprecated=5.0))); // expected-note {{here}}
|
|
void f203(void) __attribute__((availability(ios,introduced=2.0, obsoleted=5.0))); // expected-note {{here}}
|
|
void f204(void) __attribute__((availability(ios,unavailable))); // expected-note {{here}}
|
|
|
|
void inheritIosAvailability() {
|
|
f202();
|
|
#ifndef APPEXT
|
|
// expected-warning@-2 {{'f202' is deprecated: first deprecated in macCatalyst 13.1}}
|
|
#else
|
|
// expected-warning@-4 {{'f202' is deprecated: first deprecated in macCatalyst (App Extension) 13.1}}
|
|
#endif
|
|
f203();
|
|
#ifndef APPEXT
|
|
// expected-error@-2 {{'f203' is unavailable: obsoleted in macCatalyst 13.1}}
|
|
#else
|
|
// expected-error@-4 {{'f203' is unavailable: obsoleted in macCatalyst (App Extension) 13.1}}
|
|
#endif
|
|
f204();
|
|
#ifndef APPEXT
|
|
// expected-error@-2 {{'f204' is unavailable: not available on macCatalyst}}
|
|
#else
|
|
// expected-error@-4 {{'f204' is unavailable: not available on macCatalyst (App Extension)}}
|
|
#endif
|
|
}
|