brintos

brintos / llvm-project-archived public Read only

0
0
Text · 5.3 KiB · 4e6caca Raw
132 lines · c
1// RUN: %clang_cc1 "-triple" "x86_64-apple-ios13.1-macabi" -fsyntax-only -verify %s2// RUN: %clang_cc1 "-triple" "x86_64-apple-ios13.1-macabi" -fapplication-extension -D APPEXT -fsyntax-only -verify %s3 4#ifdef APPEXT5 6#define maccatalyst maccatalyst_app_extension7#define macCatalyst maccatalyst_app_extension8#define ios ios_app_extension9 10#endif11 12void f0(int) __attribute__((availability(maccatalyst,introduced=2.0,deprecated=9.1))); // expected-note {{'f0' has been explicitly marked deprecated here}}13void f1(int) __attribute__((availability(maccatalyst,introduced=2.1)));14void f2(int) __attribute__((availability(macCatalyst,introduced=2.0,deprecated=9.0))); // expected-note {{'f2' has been explicitly marked deprecated here}}15void f3(int) __attribute__((availability(maccatalyst,introduced=3.0, obsoleted=9.0))); // expected-note {{'f3' has been explicitly marked unavailable here}}16void f32(int) __attribute__((availability(maccatalyst,introduced=3.0, obsoleted=9.0))); // expected-note {{'f32' has been explicitly marked unavailable here}}17 18 19void f5(int) __attribute__((availability(maccatalyst,introduced=2.0))) __attribute__((availability(maccatalyst,deprecated=9.0))); // expected-note {{'f5' has been explicitly marked deprecated here}}20void f6(int) __attribute__((availability(maccatalyst,deprecated=9.0))); // expected-note {{'f6' has been explicitly marked deprecated here}}21void f6(int) __attribute__((availability(macCatalyst,introduced=2.0)));22 23void f7(void) // expected-note {{'f7' has been explicitly marked deprecated here}}24__attribute__((availability(maccatalyst,introduced=3.0, deprecated=4.0)))25__attribute__((availability(ios,introduced=2.0, deprecated=5.0)));26 27void f8(void) // expected-note {{'f8' has been explicitly marked unavailable here}}28__attribute__((availability(maccatalyst,introduced=3.0, obsoleted=4.0)))29__attribute__((availability(ios,introduced=2.0, obsoleted=5.0)));30 31void f9(void) // expected-note {{'f9' has been explicitly marked unavailable here}}32__attribute__((availability(maccatalyst,unavailable)))33__attribute__((availability(ios,introduced=2.0)));34 35void test(void) {36  f0(0);37#ifndef APPEXT38  // expected-warning@-2 {{'f0' is deprecated: first deprecated in macCatalyst 9.1}}39#else40  // expected-warning@-4 {{'f0' is deprecated: first deprecated in macCatalyst (App Extension) 9.1}}41#endif42  f1(0);43  f2(0);44#ifndef APPEXT45  // expected-warning@-2 {{'f2' is deprecated: first deprecated in macCatalyst 9.0}}46#else47  // expected-warning@-4 {{'f2' is deprecated: first deprecated in macCatalyst (App Extension) 9.0}}48#endif49  f3(0);50#ifndef APPEXT51  // expected-error@-2 {{'f3' is unavailable: obsoleted in macCatalyst 9.0}}52#else53  // expected-error@-4 {{'f3' is unavailable: obsoleted in macCatalyst (App Extension) 9.0}}54#endif55  f32(0);56#ifndef APPEXT57  // expected-error@-2 {{'f32' is unavailable: obsoleted in macCatalyst 9.0}}58#else59  // expected-error@-4 {{'f32' is unavailable: obsoleted in macCatalyst (App Extension) 9.0}}60#endif61  f5(0); // expected-warning{{'f5' is deprecated: first deprecated in macCatalyst}}62  f6(0); // expected-warning{{'f6' is deprecated: first deprecated in macCatalyst}}63 64  f7();65#ifndef APPEXT66  // expected-warning@-2 {{'f7' is deprecated: first deprecated in macCatalyst 4.0}}67#else68  // expected-warning@-4 {{'f7' is deprecated: first deprecated in macCatalyst (App Extension) 4.0}}69#endif70  f8();71#ifndef APPEXT72  // expected-error@-2 {{'f8' is unavailable: obsoleted in macCatalyst 4.0}}73#else74  // expected-error@-4 {{'f8' is unavailable: obsoleted in macCatalyst (App Extension) 4.0}}75#endif76  f9(); // expected-error {{'f9' is unavailable}}77}78 79// Don't inherit "deprecated"/"obsoleted" from iOS for Mac Catalyst.80 81void f100(void)82__attribute__((availability(maccatalyst,introduced=3.0)))83__attribute__((availability(ios,introduced=2.0, deprecated=5.0)));84 85void f101(void)86__attribute__((availability(maccatalyst,introduced=3.0)))87__attribute__((availability(ios,introduced=2.0, obsoleted=5.0)));88 89void f102(void)90__attribute__((availability(maccatalyst,introduced=3.0)))91__attribute__((availability(ios,unavailable)));92 93void f103(void)94__attribute__((availability(ios,unavailable)));95 96void f103(void)97__attribute__((availability(maccatalyst,introduced=3.0)));98 99void dontInheritObsoletedDeprecated(void) {100  f100();101  f101();102  f102();103  f103();104}105 106// Inherit the ios availability when Mac Catalyst isn't given.107 108void f202(void) __attribute__((availability(ios,introduced=2.0, deprecated=5.0))); // expected-note {{here}}109void f203(void) __attribute__((availability(ios,introduced=2.0, obsoleted=5.0))); // expected-note {{here}}110void f204(void) __attribute__((availability(ios,unavailable))); // expected-note {{here}}111 112void inheritIosAvailability(void) {113  f202();114#ifndef APPEXT115// expected-warning@-2 {{'f202' is deprecated: first deprecated in macCatalyst 13.1}}116#else117// expected-warning@-4 {{'f202' is deprecated: first deprecated in macCatalyst (App Extension) 13.1}}118#endif119  f203();120#ifndef APPEXT121  // expected-error@-2 {{'f203' is unavailable: obsoleted in macCatalyst 13.1}}122#else123  // expected-error@-4 {{'f203' is unavailable: obsoleted in macCatalyst (App Extension) 13.1}}124#endif125  f204();126#ifndef APPEXT127  // expected-error@-2 {{'f204' is unavailable: not available on macCatalyst}}128#else129  // expected-error@-4 {{'f204' is unavailable: not available on macCatalyst (App Extension)}}130#endif131}132