From: Manman Ren Date: Tue, 28 Jun 2016 20:55:30 +0000 (+0000) Subject: AvailabilityAttr: we accept "macos" as the platform name. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=fee7621b66d3b340f3e97c716ce27e48ab794498;p=clang AvailabilityAttr: we accept "macos" as the platform name. We continue accepting "macosx" but canonicalize it to "macos", When emitting diagnostics, we use "macOS" instead of "OS X". The PlatformName in TargetInfo is changed from "macosx" to "macos" so we can directly compare the Platform in AvailabilityAttr with the PlatformName in TargetInfo. rdar://26795172 rdar://26800775 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@274064 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/include/clang-c/Index.h b/include/clang-c/Index.h index 5e57a12e2a..4c02b3f793 100644 --- a/include/clang-c/Index.h +++ b/include/clang-c/Index.h @@ -2570,7 +2570,7 @@ typedef struct CXPlatformAvailability { * \brief A string that describes the platform for which this structure * provides availability information. * - * Possible values are "ios" or "macosx". + * Possible values are "ios" or "macos". */ CXString Platform; /** diff --git a/include/clang/Basic/Attr.td b/include/clang/Basic/Attr.td index 057cf2d052..f5b31d0d73 100644 --- a/include/clang/Basic/Attr.td +++ b/include/clang/Basic/Attr.td @@ -477,11 +477,11 @@ def Availability : InheritableAttr { return llvm::StringSwitch(Platform) .Case("android", "Android") .Case("ios", "iOS") - .Case("macosx", "OS X") + .Case("macos", "macOS") .Case("tvos", "tvOS") .Case("watchos", "watchOS") .Case("ios_app_extension", "iOS (App Extension)") - .Case("macosx_app_extension", "OS X (App Extension)") + .Case("macos_app_extension", "macOS (App Extension)") .Case("tvos_app_extension", "tvOS (App Extension)") .Case("watchos_app_extension", "watchOS (App Extension)") .Default(llvm::StringRef()); diff --git a/include/clang/Basic/AttrDocs.td b/include/clang/Basic/AttrDocs.td index ad2b8d69a7..795ca2aae2 100644 --- a/include/clang/Basic/AttrDocs.td +++ b/include/clang/Basic/AttrDocs.td @@ -691,7 +691,7 @@ the function declaration for a hypothetical function ``f``: .. code-block:: c++ - void f(void) __attribute__((availability(macosx,introduced=10.4,deprecated=10.6,obsoleted=10.7))); + void f(void) __attribute__((availability(macos,introduced=10.4,deprecated=10.6,obsoleted=10.7))); The availability attribute states that ``f`` was introduced in Mac OS X 10.4, deprecated in Mac OS X 10.6, and obsoleted in Mac OS X 10.7. This information @@ -743,7 +743,7 @@ are: the ``-mios-version-min=*version*`` or ``-miphoneos-version-min=*version*`` command-line arguments. -``macosx`` +``macos`` Apple's Mac OS X operating system. The minimum deployment target is specified by the ``-mmacosx-version-min=*version*`` command-line argument. @@ -777,24 +777,24 @@ platform. For example: .. code-block:: c - void g(void) __attribute__((availability(macosx,introduced=10.4))); - void g(void) __attribute__((availability(macosx,introduced=10.4))); // okay, matches + void g(void) __attribute__((availability(macos,introduced=10.4))); + void g(void) __attribute__((availability(macos,introduced=10.4))); // okay, matches void g(void) __attribute__((availability(ios,introduced=4.0))); // okay, adds a new platform - void g(void); // okay, inherits both macosx and ios availability from above. - void g(void) __attribute__((availability(macosx,introduced=10.5))); // error: mismatch + void g(void); // okay, inherits both macos and ios availability from above. + void g(void) __attribute__((availability(macos,introduced=10.5))); // error: mismatch When one method overrides another, the overriding method can be more widely available than the overridden method, e.g.,: .. code-block:: objc @interface A - - (id)method __attribute__((availability(macosx,introduced=10.4))); - - (id)method2 __attribute__((availability(macosx,introduced=10.4))); + - (id)method __attribute__((availability(macos,introduced=10.4))); + - (id)method2 __attribute__((availability(macos,introduced=10.4))); @end @interface B : A - - (id)method __attribute__((availability(macosx,introduced=10.3))); // okay: method moved into base class later - - (id)method __attribute__((availability(macosx,introduced=10.5))); // error: this method was available via the base class in 10.4 + - (id)method __attribute__((availability(macos,introduced=10.3))); // okay: method moved into base class later + - (id)method __attribute__((availability(macos,introduced=10.5))); // error: this method was available via the base class in 10.4 @end }]; } diff --git a/include/clang/Basic/DiagnosticParseKinds.td b/include/clang/Basic/DiagnosticParseKinds.td index 699e4d6e61..e01d9463b3 100644 --- a/include/clang/Basic/DiagnosticParseKinds.td +++ b/include/clang/Basic/DiagnosticParseKinds.td @@ -803,7 +803,7 @@ def warn_expected_consistent_version_separator : Warning< def err_zero_version : Error< "version number must have non-zero major, minor, or sub-minor version">; def err_availability_expected_platform : Error< - "expected a platform name, e.g., 'macosx'">; + "expected a platform name, e.g., 'macos'">; // objc_bridge_related attribute def err_objcbridge_related_expected_related_class : Error< diff --git a/lib/AST/Decl.cpp b/lib/AST/Decl.cpp index e94d7b93f7..b4a5a9b27d 100644 --- a/lib/AST/Decl.cpp +++ b/lib/AST/Decl.cpp @@ -222,7 +222,7 @@ static Optional getVisibilityOf(const NamedDecl *D, // implies visibility(default). if (D->getASTContext().getTargetInfo().getTriple().isOSDarwin()) { for (const auto *A : D->specific_attrs()) - if (A->getPlatform()->getName().equals("macosx")) + if (A->getPlatform()->getName().equals("macos")) return DefaultVisibility; } diff --git a/lib/Basic/Targets.cpp b/lib/Basic/Targets.cpp index 91cc9867af..63fc265144 100644 --- a/lib/Basic/Targets.cpp +++ b/lib/Basic/Targets.cpp @@ -141,7 +141,7 @@ static void getDarwinDefines(MacroBuilder &Builder, const LangOptions &Opts, unsigned Maj, Min, Rev; if (Triple.isMacOSX()) { Triple.getMacOSXVersion(Maj, Min, Rev); - PlatformName = "macosx"; + PlatformName = "macos"; } else { Triple.getOSVersion(Maj, Min, Rev); PlatformName = llvm::Triple::getOSTypeName(Triple.getOS()); diff --git a/lib/Parse/ParseDecl.cpp b/lib/Parse/ParseDecl.cpp index be694901b9..b7a253156f 100644 --- a/lib/Parse/ParseDecl.cpp +++ b/lib/Parse/ParseDecl.cpp @@ -880,6 +880,13 @@ void Parser::ParseAvailabilityAttribute(IdentifierInfo &Availability, return; } IdentifierLoc *Platform = ParseIdentifierLoc(); + // Canonicalize platform name from "macosx" to "macos". + if (Platform->Ident && Platform->Ident->getName() == "macosx") + Platform->Ident = PP.getIdentifierInfo("macos"); + // Canonicalize platform name from "macosx_app_extension" to + // "macos_app_extension". + if (Platform->Ident && Platform->Ident->getName() == "macosx_app_extension") + Platform->Ident = PP.getIdentifierInfo("macos_app_extension"); // Parse the ',' following the platform name. if (ExpectAndConsume(tok::comma)) { diff --git a/test/Index/annotate-comments-availability-attrs.cpp b/test/Index/annotate-comments-availability-attrs.cpp index 74a57b9bee..f31c4e16cc 100644 --- a/test/Index/annotate-comments-availability-attrs.cpp +++ b/test/Index/annotate-comments-availability-attrs.cpp @@ -13,12 +13,12 @@ void attr_availability_1() __attribute__((availability(macosx,obsoleted=10.0,introduced=8.0,deprecated=9.0, message="use availability_test in "))) __attribute__((availability(ios,unavailable, message="not for iOS"))); -// CHECK: FullCommentAsXML=[attr_availability_1c:@F@attr_availability_1#void attr_availability_1() Aaa.not for iOS8.09.010.0use availability_test in <foo.h>] +// CHECK: FullCommentAsXML=[attr_availability_1c:@F@attr_availability_1#void attr_availability_1() Aaa.not for iOS8.09.010.0use availability_test in <foo.h>] /// Aaa. void attr_availability_2() __attribute__((availability(macosx,obsoleted=10.0.1,introduced=8.0.1,deprecated=9.0.1))); -// CHECK: FullCommentAsXML=[attr_availability_2c:@F@attr_availability_2#void attr_availability_2() Aaa.8.0.19.0.110.0.1] +// CHECK: FullCommentAsXML=[attr_availability_2c:@F@attr_availability_2#void attr_availability_2() Aaa.8.0.19.0.110.0.1] /// Aaa. void attr_deprecated_1() __attribute__((deprecated)); diff --git a/test/Index/availability.c b/test/Index/availability.c index cfe0ff5bea..b9d2c6f449 100644 --- a/test/Index/availability.c +++ b/test/Index/availability.c @@ -14,7 +14,7 @@ enum { // RUN: FileCheck -check-prefix=CHECK-1 %s < %t // RUN: FileCheck -check-prefix=CHECK-2 %s < %t // CHECK-1: (ios, introduced=3.2, deprecated=4.1) -// CHECK-2: (macosx, introduced=10.4, deprecated=10.5, obsoleted=10.7) +// CHECK-2: (macos, introduced=10.4, deprecated=10.5, obsoleted=10.7) // CHECK-2: EnumConstantDecl=old_enum:6:3 (Definition) (deprecated) -// CHECK-2: EnumConstantDecl=old_enum_plat:10:3 {{.*}} (macosx, introduced=10.4, deprecated=10.5, obsoleted=10.7) +// CHECK-2: EnumConstantDecl=old_enum_plat:10:3 {{.*}} (macos, introduced=10.4, deprecated=10.5, obsoleted=10.7) diff --git a/test/Misc/ast-print-objectivec.m b/test/Misc/ast-print-objectivec.m index ef0fcaa9e3..6293b43f55 100644 --- a/test/Misc/ast-print-objectivec.m +++ b/test/Misc/ast-print-objectivec.m @@ -20,22 +20,22 @@ @end // CHECK: @protocol P -// CHECK: - (void) MethP __attribute__((availability(macosx, introduced=10.1.0, deprecated=10.2))); +// CHECK: - (void) MethP __attribute__((availability(macos, introduced=10.1.0, deprecated=10.2))); // CHECK: @end // CHECK: @interface I : NSObject

-// CHECK: - (void) MethI __attribute__((availability(macosx, introduced=10.1.0, deprecated=10.2))); +// CHECK: - (void) MethI __attribute__((availability(macos, introduced=10.1.0, deprecated=10.2))); // CHECK: @end // CHECK: @interface I(CAT) -// CHECK: - (void) MethCAT __attribute__((availability(macosx, introduced=10_1_0, deprecated=10_2))); +// CHECK: - (void) MethCAT __attribute__((availability(macos, introduced=10_1_0, deprecated=10_2))); // CHECK: @end // CHECK: @implementation I -// CHECK: - (void) MethP __attribute__((availability(macosx, introduced=10.1.0, deprecated=10.2))) { +// CHECK: - (void) MethP __attribute__((availability(macos, introduced=10.1.0, deprecated=10.2))) { // CHECK: } -// CHECK: - (void) MethI __attribute__((availability(macosx, introduced=10.1.0, deprecated=10.2))) { +// CHECK: - (void) MethI __attribute__((availability(macos, introduced=10.1.0, deprecated=10.2))) { // CHECK: } // CHECK: @end diff --git a/test/Sema/attr-availability-macosx.c b/test/Sema/attr-availability-macosx.c index 6991f14d95..f422811708 100644 --- a/test/Sema/attr-availability-macosx.c +++ b/test/Sema/attr-availability-macosx.c @@ -15,11 +15,11 @@ void f6(int) __attribute__((availability(macosx,strict,introduced=10.6))); //exp void test() { f0(0); f1(0); - f2(0); // expected-warning{{'f2' is deprecated: first deprecated in OS X 10.5}} + f2(0); // expected-warning{{'f2' is deprecated: first deprecated in macOS 10.5}} f3(0); - f4(0); // expected-error{{f4' is unavailable: obsoleted in OS X 10.5}} - f5(0); // expected-error{{'f5' is unavailable: not available on OS X}} - f6(0); // expected-error{{'f6' is unavailable: introduced in OS X 10.6}} + f4(0); // expected-error{{f4' is unavailable: obsoleted in macOS 10.5}} + f5(0); // expected-error{{'f5' is unavailable: not available on macOS}} + f6(0); // expected-error{{'f6' is unavailable: introduced in macOS 10.6}} } struct __attribute__((availability(macosx,strict,introduced=10.6))) @@ -27,7 +27,7 @@ struct __attribute__((availability(macosx,strict,introduced=10.6))) expected-note{{'not_yet_introduced_struct' has been explicitly marked unavailable here}} void uses_not_introduced_struct(struct not_yet_introduced_struct *); // \ - expected-error{{'not_yet_introduced_struct' is unavailable: introduced in OS X 10.6}} + expected-error{{'not_yet_introduced_struct' is unavailable: introduced in macOS 10.6}} __attribute__((availability(macosx,strict,introduced=10.6))) void uses_not_introduced_struct_same_availability(struct not_yet_introduced_struct *); @@ -53,6 +53,6 @@ struct __attribute__((availability(macosx,strict,introduced=10.9))) type_info // }; struct type_info; int test2() { - struct type_info *t; // expected-error{{'type_info' is unavailable: introduced in OS X 10.9}} + struct type_info *t; // expected-error{{'type_info' is unavailable: introduced in macOS 10.9}} return 0; } diff --git a/test/Sema/attr-availability.c b/test/Sema/attr-availability.c index d003e1e2e3..8fe6be3804 100644 --- a/test/Sema/attr-availability.c +++ b/test/Sema/attr-availability.c @@ -2,7 +2,7 @@ // RUN: %clang_cc1 -D WARN_PARTIAL -Wpartial-availability -triple x86_64-apple-darwin9 -fsyntax-only -fblocks -verify %s // -void f0() __attribute__((availability(macosx,introduced=10.4,deprecated=10.2))); // expected-warning{{feature cannot be deprecated in OS X version 10.2 before it was introduced in version 10.4; attribute ignored}} +void f0() __attribute__((availability(macosx,introduced=10.4,deprecated=10.2))); // expected-warning{{feature cannot be deprecated in macOS version 10.2 before it was introduced in version 10.4; attribute ignored}} void f1() __attribute__((availability(ios,obsoleted=2.1,deprecated=3.0))); // expected-warning{{feature cannot be obsoleted in iOS version 2.1 before it was deprecated in version 3.0; attribute ignored}} void f2() __attribute__((availability(ios,introduced=2.1,deprecated=2.1))); @@ -26,11 +26,11 @@ enum __attribute__((availability(macosx,introduced=10.8))) PartialEnum { }; void test_10095131() { - ATSFontGetName("Hello"); // expected-warning {{'ATSFontGetName' is deprecated: first deprecated in OS X 9.0 - use CTFontCopyFullName}} - ATSFontGetPostScriptName(100); // expected-error {{'ATSFontGetPostScriptName' is unavailable: obsoleted in OS X 9.0 - use ATSFontGetFullPostScriptName}} + ATSFontGetName("Hello"); // expected-warning {{'ATSFontGetName' is deprecated: first deprecated in macOS 9.0 - use CTFontCopyFullName}} + ATSFontGetPostScriptName(100); // expected-error {{'ATSFontGetPostScriptName' is unavailable: obsoleted in macOS 9.0 - use ATSFontGetFullPostScriptName}} #if defined(WARN_PARTIAL) - // expected-warning@+2 {{is partial: introduced in OS X 10.8}} expected-note@+2 {{explicitly redeclare 'PartiallyAvailable' to silence this warning}} + // expected-warning@+2 {{is partial: introduced in macOS 10.8}} expected-note@+2 {{explicitly redeclare 'PartiallyAvailable' to silence this warning}} #endif PartiallyAvailable(); } diff --git a/test/Sema/attr-print.c b/test/Sema/attr-print.c index 96f1359ef9..7ffbbb800d 100644 --- a/test/Sema/attr-print.c +++ b/test/Sema/attr-print.c @@ -33,5 +33,5 @@ int * __uptr __ptr32 p32_3; // CHECK: int * __sptr * __ptr32 ppsp32; int * __sptr * __ptr32 ppsp32; -// CHECK: __attribute__((availability(macosx, strict, introduced=10.6))); +// CHECK: __attribute__((availability(macos, strict, introduced=10.6))); void f6(int) __attribute__((availability(macosx,strict,introduced=10.6))); diff --git a/test/SemaCXX/attr-deprecated-replacement-fixit.cpp b/test/SemaCXX/attr-deprecated-replacement-fixit.cpp index 8e0af7a648..2e635a72c1 100644 --- a/test/SemaCXX/attr-deprecated-replacement-fixit.cpp +++ b/test/SemaCXX/attr-deprecated-replacement-fixit.cpp @@ -19,6 +19,6 @@ void new2(int); void test() { f_8(0); // expected-warning{{'f_8' is deprecated}} // CHECK: fix-it:"{{.*}}":{[[@LINE-1]]:3-[[@LINE-1]]:6}:"new8" - f_2(0); // expected-warning{{'f_2' is deprecated: first deprecated in OS X 9.0}} + f_2(0); // expected-warning{{'f_2' is deprecated: first deprecated in macOS 9.0}} // CHECK: fix-it:"{{.*}}":{[[@LINE-1]]:3-[[@LINE-1]]:6}:"new2" } diff --git a/test/SemaObjC/attr-availability-1.m b/test/SemaObjC/attr-availability-1.m index d694cbd80d..d3d4000378 100644 --- a/test/SemaObjC/attr-availability-1.m +++ b/test/SemaObjC/attr-availability-1.m @@ -25,19 +25,19 @@ // rdar://11475360 @interface B : A - (void)method; // NOTE: we expect 'method' to *not* inherit availability. -- (void)overridden __attribute__((availability(macosx,introduced=10_4))); // expected-warning{{overriding method introduced after overridden method on OS X (10_4 vs. 10_3)}} +- (void)overridden __attribute__((availability(macosx,introduced=10_4))); // expected-warning{{overriding method introduced after overridden method on macOS (10_4 vs. 10_3)}} - (void)overridden2 __attribute__((availability(macosx,introduced=10_2))); - (void)overridden3 __attribute__((availability(macosx,deprecated=10_4))); -- (void)overridden4 __attribute__((availability(macosx,deprecated=10_2))); // expected-warning{{overriding method deprecated before overridden method on OS X (10_3 vs. 10_2)}} +- (void)overridden4 __attribute__((availability(macosx,deprecated=10_2))); // expected-warning{{overriding method deprecated before overridden method on macOS (10_3 vs. 10_2)}} - (void)overridden5 __attribute__((availability(macosx,introduced=10_3))); -- (void)overridden6 __attribute__((availability(macosx,unavailable))); // expected-warning{{overriding method cannot be unavailable on OS X when its overridden method is available}} +- (void)overridden6 __attribute__((availability(macosx,unavailable))); // expected-warning{{overriding method cannot be unavailable on macOS when its overridden method is available}} @end void f(A *a, B *b) { - [a method]; // expected-warning{{'method' is deprecated: first deprecated in OS X 10.2}} + [a method]; // expected-warning{{'method' is deprecated: first deprecated in macOS 10.2}} [b method]; // no-warning - [a proto_method]; // expected-warning{{'proto_method' is deprecated: first deprecated in OS X 10.2}} - [b proto_method]; // expected-warning{{'proto_method' is deprecated: first deprecated in OS X 10.2}} + [a proto_method]; // expected-warning{{'proto_method' is deprecated: first deprecated in macOS 10.2}} + [b proto_method]; // expected-warning{{'proto_method' is deprecated: first deprecated in macOS 10.2}} } // Test case for . Warn about @@ -57,7 +57,7 @@ void f(A *a, B *b) { @implementation D - (void) method { - [super method]; // expected-warning {{'method' is deprecated: first deprecated in OS X 10.2}} + [super method]; // expected-warning {{'method' is deprecated: first deprecated in macOS 10.2}} } @end @@ -112,9 +112,9 @@ id NSNibOwner, topNibObjects; @end void foo (A18804883* pa) { - [pa interface_method]; // expected-error {{'interface_method' is unavailable: not available on OS X}} + [pa interface_method]; // expected-error {{'interface_method' is unavailable: not available on macOS}} [pa proto_method]; - [pa strange_method]; // expected-error {{'strange_method' is unavailable: not available on OS X}} + [pa strange_method]; // expected-error {{'strange_method' is unavailable: not available on macOS}} [pa always_available]; } diff --git a/test/SemaObjC/attr-availability.m b/test/SemaObjC/attr-availability.m index dad2d5b7e7..6cbb3cc22d 100644 --- a/test/SemaObjC/attr-availability.m +++ b/test/SemaObjC/attr-availability.m @@ -30,32 +30,32 @@ @interface B : A - (void)method; // NOTE: we expect 'method' to *not* inherit availability. - (void)partialMethod; // Likewise. -- (void)overridden __attribute__((availability(macosx,introduced=10.4))); // expected-warning{{overriding method introduced after overridden method on OS X (10.4 vs. 10.3)}} +- (void)overridden __attribute__((availability(macosx,introduced=10.4))); // expected-warning{{overriding method introduced after overridden method on macOS (10.4 vs. 10.3)}} - (void)overridden2 __attribute__((availability(macosx,introduced=10.2))); - (void)overridden3 __attribute__((availability(macosx,deprecated=10.4))); -- (void)overridden4 __attribute__((availability(macosx,deprecated=10.2))); // expected-warning{{overriding method deprecated before overridden method on OS X (10.3 vs. 10.2)}} +- (void)overridden4 __attribute__((availability(macosx,deprecated=10.2))); // expected-warning{{overriding method deprecated before overridden method on macOS (10.3 vs. 10.2)}} - (void)overridden5 __attribute__((availability(macosx,introduced=10.3))); -- (void)overridden6 __attribute__((availability(macosx,unavailable))); // expected-warning{{overriding method cannot be unavailable on OS X when its overridden method is available}} +- (void)overridden6 __attribute__((availability(macosx,unavailable))); // expected-warning{{overriding method cannot be unavailable on macOS when its overridden method is available}} - (void)unavailableMethod; // does *not* inherit unavailability @end void f(A *a, B *b) { - [a method]; // expected-warning{{'method' is deprecated: first deprecated in OS X 10.2}} + [a method]; // expected-warning{{'method' is deprecated: first deprecated in macOS 10.2}} [b method]; // no-warning - [a proto_method]; // expected-warning{{'proto_method' is deprecated: first deprecated in OS X 10.2}} - [b proto_method]; // expected-warning{{'proto_method' is deprecated: first deprecated in OS X 10.2}} + [a proto_method]; // expected-warning{{'proto_method' is deprecated: first deprecated in macOS 10.2}} + [b proto_method]; // expected-warning{{'proto_method' is deprecated: first deprecated in macOS 10.2}} #if defined(WARN_PARTIAL) - // expected-warning@+2 {{'partialMethod' is partial: introduced in OS X 10.8}} expected-note@+2 {{explicitly redeclare 'partialMethod' to silence this warning}} + // expected-warning@+2 {{'partialMethod' is partial: introduced in macOS 10.8}} expected-note@+2 {{explicitly redeclare 'partialMethod' to silence this warning}} #endif [a partialMethod]; [b partialMethod]; // no warning #if defined(WARN_PARTIAL) - // expected-warning@+2 {{'partial_proto_method' is partial: introduced in OS X 10.8}} expected-note@+2 {{explicitly redeclare 'partial_proto_method' to silence this warning}} + // expected-warning@+2 {{'partial_proto_method' is partial: introduced in macOS 10.8}} expected-note@+2 {{explicitly redeclare 'partial_proto_method' to silence this warning}} #endif [a partial_proto_method]; #if defined(WARN_PARTIAL) - // expected-warning@+2 {{'partial_proto_method' is partial: introduced in OS X 10.8}} expected-note@+2 {{explicitly redeclare 'partial_proto_method' to silence this warning}} + // expected-warning@+2 {{'partial_proto_method' is partial: introduced in macOS 10.8}} expected-note@+2 {{explicitly redeclare 'partial_proto_method' to silence this warning}} #endif [b partial_proto_method]; } @@ -89,7 +89,7 @@ void f_after_redecl(A *a, B *b) { @implementation D - (void) method { - [super method]; // expected-warning {{'method' is deprecated: first deprecated in OS X 10.2}} + [super method]; // expected-warning {{'method' is deprecated: first deprecated in macOS 10.2}} } @end @@ -163,14 +163,14 @@ void partialfun(PartialI* a) { [a partialMethod]; // no warning [a ipartialMethod1]; // no warning #if defined(WARN_PARTIAL) - // expected-warning@+2 {{'ipartialMethod2' is partial: introduced in OS X 10.8}} expected-note@+2 {{explicitly redeclare 'ipartialMethod2' to silence this warning}} + // expected-warning@+2 {{'ipartialMethod2' is partial: introduced in macOS 10.8}} expected-note@+2 {{explicitly redeclare 'ipartialMethod2' to silence this warning}} #endif [a ipartialMethod2]; [a ppartialMethod]; // no warning [PartialI partialMethod]; // no warning [PartialI ipartialMethod1]; // no warning #if defined(WARN_PARTIAL) - // expected-warning@+2 {{'ipartialMethod2' is partial: introduced in OS X 10.8}} expected-note@+2 {{explicitly redeclare 'ipartialMethod2' to silence this warning}} + // expected-warning@+2 {{'ipartialMethod2' is partial: introduced in macOS 10.8}} expected-note@+2 {{explicitly redeclare 'ipartialMethod2' to silence this warning}} #endif [PartialI ipartialMethod2]; [PartialI ppartialMethod]; // no warning @@ -183,7 +183,7 @@ __attribute__((availability(macosx, introduced = 10.8))) @interface PartialI2 @end #if defined(WARN_PARTIAL) - // expected-warning@+2 {{'PartialI2' is partial: introduced in OS X 10.8}} expected-note@+2 {{explicitly redeclare 'PartialI2' to silence this warning}} + // expected-warning@+2 {{'PartialI2' is partial: introduced in macOS 10.8}} expected-note@+2 {{explicitly redeclare 'PartialI2' to silence this warning}} #endif void partialinter1(PartialI2* p) { } @@ -220,7 +220,7 @@ void use_myEnum() { @end void testAvailabilityP2(id obj) { - [obj methodA]; // expected-warning{{'methodA' is deprecated: first deprecated in OS X 10.2}} + [obj methodA]; // expected-warning{{'methodA' is deprecated: first deprecated in macOS 10.2}} [obj methodB]; // expected-error{{'methodB' is unavailable}} } @@ -242,13 +242,13 @@ __attribute__((objc_root_class)) -(void)methodA { // Make sure we're not inheriting availability. id obj = self; - [obj methodA]; // expected-warning{{'methodA' is deprecated: first deprecated in OS X 10.2}} + [obj methodA]; // expected-warning{{'methodA' is deprecated: first deprecated in macOS 10.2}} [obj methodB]; // expected-error{{'methodB' is unavailable}} } -(void)methodB { // Make sure we're not inheriting unavailability. id obj = self; - [obj methodA]; // expected-warning{{'methodA' is deprecated: first deprecated in OS X 10.2}} + [obj methodA]; // expected-warning{{'methodA' is deprecated: first deprecated in macOS 10.2}} [obj methodB]; // expected-error{{'methodB' is unavailable}} } @@ -257,13 +257,13 @@ __attribute__((objc_root_class)) void testImplementsAvailabilityP2b(ImplementsAvailabilityP2b *obj) { // still get warnings/errors because we see the protocol version. - [obj methodA]; // expected-warning{{'methodA' is deprecated: first deprecated in OS X 10.2}} + [obj methodA]; // expected-warning{{'methodA' is deprecated: first deprecated in macOS 10.2}} [obj methodB]; // expected-error{{'methodB' is unavailable}} } __attribute__((objc_root_class)) @interface ImplementsAvailabilityP2c --(void)methodA __attribute__((availability(macosx,introduced=10.2))); // expected-warning{{method introduced after the protocol method it implements on OS X (10.2 vs. 10.1)}} +-(void)methodA __attribute__((availability(macosx,introduced=10.2))); // expected-warning{{method introduced after the protocol method it implements on macOS (10.2 vs. 10.1)}} -(void)methodB __attribute__((unavailable)); @end @@ -272,7 +272,7 @@ __attribute__((objc_root_class)) @end @implementation ImplementsAvailabilityP2d --(void)methodA __attribute__((availability(macosx,introduced=10.2))) // expected-warning{{method introduced after the protocol method it implements on OS X (10.2 vs. 10.1)}} +-(void)methodA __attribute__((availability(macosx,introduced=10.2))) // expected-warning{{method introduced after the protocol method it implements on macOS (10.2 vs. 10.1)}} { } -(void)methodB __attribute__((unavailable)) { diff --git a/test/SemaObjC/attr-deprecated.m b/test/SemaObjC/attr-deprecated.m index 14d33d3760..59087bdf11 100644 --- a/test/SemaObjC/attr-deprecated.m +++ b/test/SemaObjC/attr-deprecated.m @@ -235,7 +235,7 @@ expected-note {{property declared here}} id PID = 0; const char * func() { - return [PID cString]; // expected-warning {{'cString' is deprecated: first deprecated in OS X 10.4}} + return [PID cString]; // expected-warning {{'cString' is deprecated: first deprecated in macOS 10.4}} } // rdar://18960378 diff --git a/test/SemaObjC/property-noninherited-availability-attr.m b/test/SemaObjC/property-noninherited-availability-attr.m index dfa72d1077..abedcc2378 100644 --- a/test/SemaObjC/property-noninherited-availability-attr.m +++ b/test/SemaObjC/property-noninherited-availability-attr.m @@ -20,8 +20,8 @@ @end void test(Foo *y, Bar *x, id z) { - y.myProperty = 0; // expected-warning {{'myProperty' is deprecated: first deprecated in OS X 10.8}} - (void)[y myProperty]; // expected-warning {{'myProperty' is deprecated: first deprecated in OS X 10.8}} + y.myProperty = 0; // expected-warning {{'myProperty' is deprecated: first deprecated in macOS 10.8}} + (void)[y myProperty]; // expected-warning {{'myProperty' is deprecated: first deprecated in macOS 10.8}} x.myProperty = 1; // no-warning (void)[x myProperty]; // no-warning @@ -29,5 +29,5 @@ void test(Foo *y, Bar *x, id z) { x.myProtocolProperty = 0; // no-warning (void)[x myProtocolProperty]; // no-warning - (void)[z myProtocolProperty]; // expected-warning {{'myProtocolProperty' is deprecated: first deprecated in OS X 10.8}} + (void)[z myProtocolProperty]; // expected-warning {{'myProtocolProperty' is deprecated: first deprecated in macOS 10.8}} }