<div dir="ltr">Good point! In r<span style="font-family:Menlo;font-size:14px">274133.</span><div><span style="font-family:Menlo;font-size:14px"><br></span></div><div><span style="font-family:Menlo;font-size:14px">Manman</span></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Jun 29, 2016 at 7:30 AM, Aaron Ballman <span dir="ltr"><<a href="mailto:aaron@aaronballman.com" target="_blank">aaron@aaronballman.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="HOEnZb"><div class="h5">On Tue, Jun 28, 2016 at 4:55 PM, Manman Ren via cfe-commits<br>
<<a href="mailto:cfe-commits@lists.llvm.org">cfe-commits@lists.llvm.org</a>> wrote:<br>
> Author: mren<br>
> Date: Tue Jun 28 15:55:30 2016<br>
> New Revision: 274064<br>
><br>
> URL: <a href="http://llvm.org/viewvc/llvm-project?rev=274064&view=rev" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project?rev=274064&view=rev</a><br>
> Log:<br>
> AvailabilityAttr: we accept "macos" as the platform name.<br>
><br>
> We continue accepting "macosx" but canonicalize it to "macos", When emitting<br>
> diagnostics, we use "macOS" instead of "OS X".<br>
><br>
> The PlatformName in TargetInfo is changed from "macosx" to "macos" so we can<br>
> directly compare the Platform in AvailabilityAttr with the PlatformName<br>
> in TargetInfo.<br>
><br>
> rdar://26795172<br>
> rdar://26800775<br>
><br>
> Modified:<br>
> cfe/trunk/include/clang-c/Index.h<br>
> cfe/trunk/include/clang/Basic/Attr.td<br>
> cfe/trunk/include/clang/Basic/AttrDocs.td<br>
> cfe/trunk/include/clang/Basic/DiagnosticParseKinds.td<br>
> cfe/trunk/lib/AST/Decl.cpp<br>
> cfe/trunk/lib/Basic/Targets.cpp<br>
> cfe/trunk/lib/Parse/ParseDecl.cpp<br>
> cfe/trunk/test/Index/annotate-comments-availability-attrs.cpp<br>
> cfe/trunk/test/Index/availability.c<br>
> cfe/trunk/test/Misc/ast-print-objectivec.m<br>
> cfe/trunk/test/Sema/attr-availability-macosx.c<br>
> cfe/trunk/test/Sema/attr-availability.c<br>
> cfe/trunk/test/Sema/attr-print.c<br>
> cfe/trunk/test/SemaCXX/attr-deprecated-replacement-fixit.cpp<br>
> cfe/trunk/test/SemaObjC/attr-availability-1.m<br>
> cfe/trunk/test/SemaObjC/attr-availability.m<br>
> cfe/trunk/test/SemaObjC/attr-deprecated.m<br>
> cfe/trunk/test/SemaObjC/property-noninherited-availability-attr.m<br>
><br>
> Modified: cfe/trunk/include/clang-c/Index.h<br>
> URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang-c/Index.h?rev=274064&r1=274063&r2=274064&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang-c/Index.h?rev=274064&r1=274063&r2=274064&view=diff</a><br>
> ==============================================================================<br>
> --- cfe/trunk/include/clang-c/Index.h (original)<br>
> +++ cfe/trunk/include/clang-c/Index.h Tue Jun 28 15:55:30 2016<br>
> @@ -2570,7 +2570,7 @@ typedef struct CXPlatformAvailability {<br>
> * \brief A string that describes the platform for which this structure<br>
> * provides availability information.<br>
> *<br>
> - * Possible values are "ios" or "macosx".<br>
> + * Possible values are "ios" or "macos".<br>
> */<br>
> CXString Platform;<br>
> /**<br>
><br>
> Modified: cfe/trunk/include/clang/Basic/Attr.td<br>
> URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Basic/Attr.td?rev=274064&r1=274063&r2=274064&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Basic/Attr.td?rev=274064&r1=274063&r2=274064&view=diff</a><br>
> ==============================================================================<br>
> --- cfe/trunk/include/clang/Basic/Attr.td (original)<br>
> +++ cfe/trunk/include/clang/Basic/Attr.td Tue Jun 28 15:55:30 2016<br>
> @@ -477,11 +477,11 @@ def Availability : InheritableAttr {<br>
> return llvm::StringSwitch<llvm::StringRef>(Platform)<br>
> .Case("android", "Android")<br>
> .Case("ios", "iOS")<br>
> - .Case("macosx", "OS X")<br>
> + .Case("macos", "macOS")<br>
> .Case("tvos", "tvOS")<br>
> .Case("watchos", "watchOS")<br>
> .Case("ios_app_extension", "iOS (App Extension)")<br>
> - .Case("macosx_app_extension", "OS X (App Extension)")<br>
> + .Case("macos_app_extension", "macOS (App Extension)")<br>
> .Case("tvos_app_extension", "tvOS (App Extension)")<br>
> .Case("watchos_app_extension", "watchOS (App Extension)")<br>
> .Default(llvm::StringRef());<br>
><br>
> Modified: cfe/trunk/include/clang/Basic/AttrDocs.td<br>
> URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Basic/AttrDocs.td?rev=274064&r1=274063&r2=274064&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Basic/AttrDocs.td?rev=274064&r1=274063&r2=274064&view=diff</a><br>
> ==============================================================================<br>
> --- cfe/trunk/include/clang/Basic/AttrDocs.td (original)<br>
> +++ cfe/trunk/include/clang/Basic/AttrDocs.td Tue Jun 28 15:55:30 2016<br>
> @@ -691,7 +691,7 @@ the function declaration for a hypotheti<br>
><br>
> .. code-block:: c++<br>
><br>
> - void f(void) __attribute__((availability(macosx,introduced=10.4,deprecated=10.6,obsoleted=10.7)));<br>
> + void f(void) __attribute__((availability(macos,introduced=10.4,deprecated=10.6,obsoleted=10.7)));<br>
><br>
> The availability attribute states that ``f`` was introduced in Mac OS X 10.4,<br>
> deprecated in Mac OS X 10.6, and obsoleted in Mac OS X 10.7. This information<br>
> @@ -743,7 +743,7 @@ are:<br>
> the ``-mios-version-min=*version*`` or ``-miphoneos-version-min=*version*``<br>
> command-line arguments.<br>
><br>
> -``macosx``<br>
> +``macos``<br>
<br>
</div></div>Can you please continue to document that we support macosx, but that<br>
it's deprecated?<br>
<span class="HOEnZb"><font color="#888888"><br>
~Aaron<br>
</font></span><div class="HOEnZb"><div class="h5"><br>
> Apple's Mac OS X operating system. The minimum deployment target is<br>
> specified by the ``-mmacosx-version-min=*version*`` command-line argument.<br>
><br>
> @@ -777,24 +777,24 @@ platform. For example:<br>
><br>
> .. code-block:: c<br>
><br>
> - void g(void) __attribute__((availability(macosx,introduced=10.4)));<br>
> - void g(void) __attribute__((availability(macosx,introduced=10.4))); // okay, matches<br>
> + void g(void) __attribute__((availability(macos,introduced=10.4)));<br>
> + void g(void) __attribute__((availability(macos,introduced=10.4))); // okay, matches<br>
> void g(void) __attribute__((availability(ios,introduced=4.0))); // okay, adds a new platform<br>
> - void g(void); // okay, inherits both macosx and ios availability from above.<br>
> - void g(void) __attribute__((availability(macosx,introduced=10.5))); // error: mismatch<br>
> + void g(void); // okay, inherits both macos and ios availability from above.<br>
> + void g(void) __attribute__((availability(macos,introduced=10.5))); // error: mismatch<br>
><br>
> When one method overrides another, the overriding method can be more widely available than the overridden method, e.g.,:<br>
><br>
> .. code-block:: objc<br>
><br>
> @interface A<br>
> - - (id)method __attribute__((availability(macosx,introduced=10.4)));<br>
> - - (id)method2 __attribute__((availability(macosx,introduced=10.4)));<br>
> + - (id)method __attribute__((availability(macos,introduced=10.4)));<br>
> + - (id)method2 __attribute__((availability(macos,introduced=10.4)));<br>
> @end<br>
><br>
> @interface B : A<br>
> - - (id)method __attribute__((availability(macosx,introduced=10.3))); // okay: method moved into base class later<br>
> - - (id)method __attribute__((availability(macosx,introduced=10.5))); // error: this method was available via the base class in 10.4<br>
> + - (id)method __attribute__((availability(macos,introduced=10.3))); // okay: method moved into base class later<br>
> + - (id)method __attribute__((availability(macos,introduced=10.5))); // error: this method was available via the base class in 10.4<br>
> @end<br>
> }];<br>
> }<br>
><br>
> Modified: cfe/trunk/include/clang/Basic/DiagnosticParseKinds.td<br>
> URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Basic/DiagnosticParseKinds.td?rev=274064&r1=274063&r2=274064&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Basic/DiagnosticParseKinds.td?rev=274064&r1=274063&r2=274064&view=diff</a><br>
> ==============================================================================<br>
> --- cfe/trunk/include/clang/Basic/DiagnosticParseKinds.td (original)<br>
> +++ cfe/trunk/include/clang/Basic/DiagnosticParseKinds.td Tue Jun 28 15:55:30 2016<br>
> @@ -803,7 +803,7 @@ def warn_expected_consistent_version_sep<br>
> def err_zero_version : Error<<br>
> "version number must have non-zero major, minor, or sub-minor version">;<br>
> def err_availability_expected_platform : Error<<br>
> - "expected a platform name, e.g., 'macosx'">;<br>
> + "expected a platform name, e.g., 'macos'">;<br>
><br>
> // objc_bridge_related attribute<br>
> def err_objcbridge_related_expected_related_class : Error<<br>
><br>
> Modified: cfe/trunk/lib/AST/Decl.cpp<br>
> URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/AST/Decl.cpp?rev=274064&r1=274063&r2=274064&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/AST/Decl.cpp?rev=274064&r1=274063&r2=274064&view=diff</a><br>
> ==============================================================================<br>
> --- cfe/trunk/lib/AST/Decl.cpp (original)<br>
> +++ cfe/trunk/lib/AST/Decl.cpp Tue Jun 28 15:55:30 2016<br>
> @@ -222,7 +222,7 @@ static Optional<Visibility> getVisibilit<br>
> // implies visibility(default).<br>
> if (D->getASTContext().getTargetInfo().getTriple().isOSDarwin()) {<br>
> for (const auto *A : D->specific_attrs<AvailabilityAttr>())<br>
> - if (A->getPlatform()->getName().equals("macosx"))<br>
> + if (A->getPlatform()->getName().equals("macos"))<br>
> return DefaultVisibility;<br>
> }<br>
><br>
><br>
> Modified: cfe/trunk/lib/Basic/Targets.cpp<br>
> URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Basic/Targets.cpp?rev=274064&r1=274063&r2=274064&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Basic/Targets.cpp?rev=274064&r1=274063&r2=274064&view=diff</a><br>
> ==============================================================================<br>
> --- cfe/trunk/lib/Basic/Targets.cpp (original)<br>
> +++ cfe/trunk/lib/Basic/Targets.cpp Tue Jun 28 15:55:30 2016<br>
> @@ -141,7 +141,7 @@ static void getDarwinDefines(MacroBuilde<br>
> unsigned Maj, Min, Rev;<br>
> if (Triple.isMacOSX()) {<br>
> Triple.getMacOSXVersion(Maj, Min, Rev);<br>
> - PlatformName = "macosx";<br>
> + PlatformName = "macos";<br>
> } else {<br>
> Triple.getOSVersion(Maj, Min, Rev);<br>
> PlatformName = llvm::Triple::getOSTypeName(Triple.getOS());<br>
><br>
> Modified: cfe/trunk/lib/Parse/ParseDecl.cpp<br>
> URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Parse/ParseDecl.cpp?rev=274064&r1=274063&r2=274064&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Parse/ParseDecl.cpp?rev=274064&r1=274063&r2=274064&view=diff</a><br>
> ==============================================================================<br>
> --- cfe/trunk/lib/Parse/ParseDecl.cpp (original)<br>
> +++ cfe/trunk/lib/Parse/ParseDecl.cpp Tue Jun 28 15:55:30 2016<br>
> @@ -880,6 +880,13 @@ void Parser::ParseAvailabilityAttribute(<br>
> return;<br>
> }<br>
> IdentifierLoc *Platform = ParseIdentifierLoc();<br>
> + // Canonicalize platform name from "macosx" to "macos".<br>
> + if (Platform->Ident && Platform->Ident->getName() == "macosx")<br>
> + Platform->Ident = PP.getIdentifierInfo("macos");<br>
> + // Canonicalize platform name from "macosx_app_extension" to<br>
> + // "macos_app_extension".<br>
> + if (Platform->Ident && Platform->Ident->getName() == "macosx_app_extension")<br>
> + Platform->Ident = PP.getIdentifierInfo("macos_app_extension");<br>
><br>
> // Parse the ',' following the platform name.<br>
> if (ExpectAndConsume(tok::comma)) {<br>
><br>
> Modified: cfe/trunk/test/Index/annotate-comments-availability-attrs.cpp<br>
> URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Index/annotate-comments-availability-attrs.cpp?rev=274064&r1=274063&r2=274064&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Index/annotate-comments-availability-attrs.cpp?rev=274064&r1=274063&r2=274064&view=diff</a><br>
> ==============================================================================<br>
> --- cfe/trunk/test/Index/annotate-comments-availability-attrs.cpp (original)<br>
> +++ cfe/trunk/test/Index/annotate-comments-availability-attrs.cpp Tue Jun 28 15:55:30 2016<br>
> @@ -13,12 +13,12 @@<br>
> void attr_availability_1() __attribute__((availability(macosx,obsoleted=10.0,introduced=8.0,deprecated=9.0, message="use availability_test in <foo.h>")))<br>
> __attribute__((availability(ios,unavailable, message="not for iOS")));<br>
><br>
> -// CHECK: FullCommentAsXML=[<Function file="{{[^"]+}}annotate-comments-availability-attrs.cpp" line="[[@LINE-3]]" column="6"><Name>attr_availability_1</Name><USR>c:@F@attr_availability_1#</USR><Declaration>void attr_availability_1()</Declaration><Abstract><Para> Aaa.</Para></Abstract><Availability distribution="iOS"><DeprecationSummary>not for iOS</DeprecationSummary><Unavailable/></Availability><Availability distribution="OS X"><IntroducedInVersion>8.0</IntroducedInVersion><DeprecatedInVersion>9.0</DeprecatedInVersion><RemovedAfterVersion>10.0</RemovedAfterVersion><DeprecationSummary>use availability_test in <foo.h></DeprecationSummary></Availability></Function>]<br>
> +// CHECK: FullCommentAsXML=[<Function file="{{[^"]+}}annotate-comments-availability-attrs.cpp" line="[[@LINE-3]]" column="6"><Name>attr_availability_1</Name><USR>c:@F@attr_availability_1#</USR><Declaration>void attr_availability_1()</Declaration><Abstract><Para> Aaa.</Para></Abstract><Availability distribution="iOS"><DeprecationSummary>not for iOS</DeprecationSummary><Unavailable/></Availability><Availability distribution="macOS"><IntroducedInVersion>8.0</IntroducedInVersion><DeprecatedInVersion>9.0</DeprecatedInVersion><RemovedAfterVersion>10.0</RemovedAfterVersion><DeprecationSummary>use availability_test in <foo.h></DeprecationSummary></Availability></Function>]<br>
><br>
> /// Aaa.<br>
> void attr_availability_2() __attribute__((availability(macosx,obsoleted=10.0.1,introduced=8.0.1,deprecated=9.0.1)));<br>
><br>
> -// CHECK: FullCommentAsXML=[<Function file="{{[^"]+}}annotate-comments-availability-attrs.cpp" line="[[@LINE-2]]" column="6"><Name>attr_availability_2</Name><USR>c:@F@attr_availability_2#</USR><Declaration>void attr_availability_2()</Declaration><Abstract><Para> Aaa.</Para></Abstract><Availability distribution="OS X"><IntroducedInVersion>8.0.1</IntroducedInVersion><DeprecatedInVersion>9.0.1</DeprecatedInVersion><RemovedAfterVersion>10.0.1</RemovedAfterVersion></Availability></Function>]<br>
> +// CHECK: FullCommentAsXML=[<Function file="{{[^"]+}}annotate-comments-availability-attrs.cpp" line="[[@LINE-2]]" column="6"><Name>attr_availability_2</Name><USR>c:@F@attr_availability_2#</USR><Declaration>void attr_availability_2()</Declaration><Abstract><Para> Aaa.</Para></Abstract><Availability distribution="macOS"><IntroducedInVersion>8.0.1</IntroducedInVersion><DeprecatedInVersion>9.0.1</DeprecatedInVersion><RemovedAfterVersion>10.0.1</RemovedAfterVersion></Availability></Function>]<br>
><br>
> /// Aaa.<br>
> void attr_deprecated_1() __attribute__((deprecated));<br>
><br>
> Modified: cfe/trunk/test/Index/availability.c<br>
> URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Index/availability.c?rev=274064&r1=274063&r2=274064&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Index/availability.c?rev=274064&r1=274063&r2=274064&view=diff</a><br>
> ==============================================================================<br>
> --- cfe/trunk/test/Index/availability.c (original)<br>
> +++ cfe/trunk/test/Index/availability.c Tue Jun 28 15:55:30 2016<br>
> @@ -14,7 +14,7 @@ enum {<br>
> // RUN: FileCheck -check-prefix=CHECK-1 %s < %t<br>
> // RUN: FileCheck -check-prefix=CHECK-2 %s < %t<br>
> // CHECK-1: (ios, introduced=3.2, deprecated=4.1)<br>
> -// CHECK-2: (macosx, introduced=10.4, deprecated=10.5, obsoleted=10.7)<br>
> +// CHECK-2: (macos, introduced=10.4, deprecated=10.5, obsoleted=10.7)<br>
><br>
> // CHECK-2: EnumConstantDecl=old_enum:6:3 (Definition) (deprecated)<br>
> -// CHECK-2: EnumConstantDecl=old_enum_plat:10:3 {{.*}} (macosx, introduced=10.4, deprecated=10.5, obsoleted=10.7)<br>
> +// CHECK-2: EnumConstantDecl=old_enum_plat:10:3 {{.*}} (macos, introduced=10.4, deprecated=10.5, obsoleted=10.7)<br>
><br>
> Modified: cfe/trunk/test/Misc/ast-print-objectivec.m<br>
> URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Misc/ast-print-objectivec.m?rev=274064&r1=274063&r2=274064&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Misc/ast-print-objectivec.m?rev=274064&r1=274063&r2=274064&view=diff</a><br>
> ==============================================================================<br>
> --- cfe/trunk/test/Misc/ast-print-objectivec.m (original)<br>
> +++ cfe/trunk/test/Misc/ast-print-objectivec.m Tue Jun 28 15:55:30 2016<br>
> @@ -20,22 +20,22 @@<br>
> @end<br>
><br>
> // CHECK: @protocol P<br>
> -// CHECK: - (void) MethP __attribute__((availability(macosx, introduced=10.1.0, deprecated=10.2)));<br>
> +// CHECK: - (void) MethP __attribute__((availability(macos, introduced=10.1.0, deprecated=10.2)));<br>
> // CHECK: @end<br>
><br>
> // CHECK: @interface I : NSObject<P><br>
> -// CHECK: - (void) MethI __attribute__((availability(macosx, introduced=10.1.0, deprecated=10.2)));<br>
> +// CHECK: - (void) MethI __attribute__((availability(macos, introduced=10.1.0, deprecated=10.2)));<br>
> // CHECK: @end<br>
><br>
> // CHECK: @interface I(CAT)<br>
> -// CHECK: - (void) MethCAT __attribute__((availability(macosx, introduced=10_1_0, deprecated=10_2)));<br>
> +// CHECK: - (void) MethCAT __attribute__((availability(macos, introduced=10_1_0, deprecated=10_2)));<br>
> // CHECK: @end<br>
><br>
> // CHECK: @implementation I<br>
> -// CHECK: - (void) MethP __attribute__((availability(macosx, introduced=10.1.0, deprecated=10.2))) {<br>
> +// CHECK: - (void) MethP __attribute__((availability(macos, introduced=10.1.0, deprecated=10.2))) {<br>
> // CHECK: }<br>
><br>
> -// CHECK: - (void) MethI __attribute__((availability(macosx, introduced=10.1.0, deprecated=10.2))) {<br>
> +// CHECK: - (void) MethI __attribute__((availability(macos, introduced=10.1.0, deprecated=10.2))) {<br>
> // CHECK: }<br>
><br>
> // CHECK: @end<br>
><br>
> Modified: cfe/trunk/test/Sema/attr-availability-macosx.c<br>
> URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Sema/attr-availability-macosx.c?rev=274064&r1=274063&r2=274064&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Sema/attr-availability-macosx.c?rev=274064&r1=274063&r2=274064&view=diff</a><br>
> ==============================================================================<br>
> --- cfe/trunk/test/Sema/attr-availability-macosx.c (original)<br>
> +++ cfe/trunk/test/Sema/attr-availability-macosx.c Tue Jun 28 15:55:30 2016<br>
> @@ -15,11 +15,11 @@ void f6(int) __attribute__((availability<br>
> void test() {<br>
> f0(0);<br>
> f1(0);<br>
> - f2(0); // expected-warning{{'f2' is deprecated: first deprecated in OS X 10.5}}<br>
> + f2(0); // expected-warning{{'f2' is deprecated: first deprecated in macOS 10.5}}<br>
> f3(0);<br>
> - f4(0); // expected-error{{f4' is unavailable: obsoleted in OS X 10.5}}<br>
> - f5(0); // expected-error{{'f5' is unavailable: not available on OS X}}<br>
> - f6(0); // expected-error{{'f6' is unavailable: introduced in OS X 10.6}}<br>
> + f4(0); // expected-error{{f4' is unavailable: obsoleted in macOS 10.5}}<br>
> + f5(0); // expected-error{{'f5' is unavailable: not available on macOS}}<br>
> + f6(0); // expected-error{{'f6' is unavailable: introduced in macOS 10.6}}<br>
> }<br>
><br>
> struct __attribute__((availability(macosx,strict,introduced=10.6)))<br>
> @@ -27,7 +27,7 @@ struct __attribute__((availability(macos<br>
> expected-note{{'not_yet_introduced_struct' has been explicitly marked unavailable here}}<br>
><br>
> void uses_not_introduced_struct(struct not_yet_introduced_struct *); // \<br>
> - expected-error{{'not_yet_introduced_struct' is unavailable: introduced in OS X 10.6}}<br>
> + expected-error{{'not_yet_introduced_struct' is unavailable: introduced in macOS 10.6}}<br>
><br>
> __attribute__((availability(macosx,strict,introduced=10.6)))<br>
> void uses_not_introduced_struct_same_availability(struct not_yet_introduced_struct *);<br>
> @@ -53,6 +53,6 @@ struct __attribute__((availability(macos<br>
> };<br>
> struct type_info;<br>
> int test2() {<br>
> - struct type_info *t; // expected-error{{'type_info' is unavailable: introduced in OS X 10.9}}<br>
> + struct type_info *t; // expected-error{{'type_info' is unavailable: introduced in macOS 10.9}}<br>
> return 0;<br>
> }<br>
><br>
> Modified: cfe/trunk/test/Sema/attr-availability.c<br>
> URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Sema/attr-availability.c?rev=274064&r1=274063&r2=274064&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Sema/attr-availability.c?rev=274064&r1=274063&r2=274064&view=diff</a><br>
> ==============================================================================<br>
> --- cfe/trunk/test/Sema/attr-availability.c (original)<br>
> +++ cfe/trunk/test/Sema/attr-availability.c Tue Jun 28 15:55:30 2016<br>
> @@ -2,7 +2,7 @@<br>
> // RUN: %clang_cc1 -D WARN_PARTIAL -Wpartial-availability -triple x86_64-apple-darwin9 -fsyntax-only -fblocks -verify %s<br>
> //<br>
><br>
> -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}}<br>
> +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}}<br>
> 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}}<br>
> void f2() __attribute__((availability(ios,introduced=2.1,deprecated=2.1)));<br>
><br>
> @@ -26,11 +26,11 @@ enum __attribute__((availability(macosx,<br>
> };<br>
><br>
> void test_10095131() {<br>
> - ATSFontGetName("Hello"); // expected-warning {{'ATSFontGetName' is deprecated: first deprecated in OS X 9.0 - use CTFontCopyFullName}}<br>
> - ATSFontGetPostScriptName(100); // expected-error {{'ATSFontGetPostScriptName' is unavailable: obsoleted in OS X 9.0 - use ATSFontGetFullPostScriptName}}<br>
> + ATSFontGetName("Hello"); // expected-warning {{'ATSFontGetName' is deprecated: first deprecated in macOS 9.0 - use CTFontCopyFullName}}<br>
> + ATSFontGetPostScriptName(100); // expected-error {{'ATSFontGetPostScriptName' is unavailable: obsoleted in macOS 9.0 - use ATSFontGetFullPostScriptName}}<br>
><br>
> #if defined(WARN_PARTIAL)<br>
> - // expected-warning@+2 {{is partial: introduced in OS X 10.8}} expected-note@+2 {{explicitly redeclare 'PartiallyAvailable' to silence this warning}}<br>
> + // expected-warning@+2 {{is partial: introduced in macOS 10.8}} expected-note@+2 {{explicitly redeclare 'PartiallyAvailable' to silence this warning}}<br>
> #endif<br>
> PartiallyAvailable();<br>
> }<br>
><br>
> Modified: cfe/trunk/test/Sema/attr-print.c<br>
> URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Sema/attr-print.c?rev=274064&r1=274063&r2=274064&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Sema/attr-print.c?rev=274064&r1=274063&r2=274064&view=diff</a><br>
> ==============================================================================<br>
> --- cfe/trunk/test/Sema/attr-print.c (original)<br>
> +++ cfe/trunk/test/Sema/attr-print.c Tue Jun 28 15:55:30 2016<br>
> @@ -33,5 +33,5 @@ int * __uptr __ptr32 p32_3;<br>
> // CHECK: int * __sptr * __ptr32 ppsp32;<br>
> int * __sptr * __ptr32 ppsp32;<br>
><br>
> -// CHECK: __attribute__((availability(macosx, strict, introduced=10.6)));<br>
> +// CHECK: __attribute__((availability(macos, strict, introduced=10.6)));<br>
> void f6(int) __attribute__((availability(macosx,strict,introduced=10.6)));<br>
><br>
> Modified: cfe/trunk/test/SemaCXX/attr-deprecated-replacement-fixit.cpp<br>
> URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/SemaCXX/attr-deprecated-replacement-fixit.cpp?rev=274064&r1=274063&r2=274064&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/SemaCXX/attr-deprecated-replacement-fixit.cpp?rev=274064&r1=274063&r2=274064&view=diff</a><br>
> ==============================================================================<br>
> --- cfe/trunk/test/SemaCXX/attr-deprecated-replacement-fixit.cpp (original)<br>
> +++ cfe/trunk/test/SemaCXX/attr-deprecated-replacement-fixit.cpp Tue Jun 28 15:55:30 2016<br>
> @@ -19,6 +19,6 @@ void new2(int);<br>
> void test() {<br>
> f_8(0); // expected-warning{{'f_8' is deprecated}}<br>
> // CHECK: fix-it:"{{.*}}":{[[@LINE-1]]:3-[[@LINE-1]]:6}:"new8"<br>
> - f_2(0); // expected-warning{{'f_2' is deprecated: first deprecated in OS X 9.0}}<br>
> + f_2(0); // expected-warning{{'f_2' is deprecated: first deprecated in macOS 9.0}}<br>
> // CHECK: fix-it:"{{.*}}":{[[@LINE-1]]:3-[[@LINE-1]]:6}:"new2"<br>
> }<br>
><br>
> Modified: cfe/trunk/test/SemaObjC/attr-availability-1.m<br>
> URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/SemaObjC/attr-availability-1.m?rev=274064&r1=274063&r2=274064&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/SemaObjC/attr-availability-1.m?rev=274064&r1=274063&r2=274064&view=diff</a><br>
> ==============================================================================<br>
> --- cfe/trunk/test/SemaObjC/attr-availability-1.m (original)<br>
> +++ cfe/trunk/test/SemaObjC/attr-availability-1.m Tue Jun 28 15:55:30 2016<br>
> @@ -25,19 +25,19 @@<br>
> // rdar://11475360<br>
> @interface B : A<br>
> - (void)method; // NOTE: we expect 'method' to *not* inherit availability.<br>
> -- (void)overridden __attribute__((availability(macosx,introduced=10_4))); // expected-warning{{overriding method introduced after overridden method on OS X (10_4 vs. 10_3)}}<br>
> +- (void)overridden __attribute__((availability(macosx,introduced=10_4))); // expected-warning{{overriding method introduced after overridden method on macOS (10_4 vs. 10_3)}}<br>
> - (void)overridden2 __attribute__((availability(macosx,introduced=10_2)));<br>
> - (void)overridden3 __attribute__((availability(macosx,deprecated=10_4)));<br>
> -- (void)overridden4 __attribute__((availability(macosx,deprecated=10_2))); // expected-warning{{overriding method deprecated before overridden method on OS X (10_3 vs. 10_2)}}<br>
> +- (void)overridden4 __attribute__((availability(macosx,deprecated=10_2))); // expected-warning{{overriding method deprecated before overridden method on macOS (10_3 vs. 10_2)}}<br>
> - (void)overridden5 __attribute__((availability(macosx,introduced=10_3)));<br>
> -- (void)overridden6 __attribute__((availability(macosx,unavailable))); // expected-warning{{overriding method cannot be unavailable on OS X when its overridden method is available}}<br>
> +- (void)overridden6 __attribute__((availability(macosx,unavailable))); // expected-warning{{overriding method cannot be unavailable on macOS when its overridden method is available}}<br>
> @end<br>
><br>
> void f(A *a, B *b) {<br>
> - [a method]; // expected-warning{{'method' is deprecated: first deprecated in OS X 10.2}}<br>
> + [a method]; // expected-warning{{'method' is deprecated: first deprecated in macOS 10.2}}<br>
> [b method]; // no-warning<br>
> - [a proto_method]; // expected-warning{{'proto_method' is deprecated: first deprecated in OS X 10.2}}<br>
> - [b proto_method]; // expected-warning{{'proto_method' is deprecated: first deprecated in OS X 10.2}}<br>
> + [a proto_method]; // expected-warning{{'proto_method' is deprecated: first deprecated in macOS 10.2}}<br>
> + [b proto_method]; // expected-warning{{'proto_method' is deprecated: first deprecated in macOS 10.2}}<br>
> }<br>
><br>
> // Test case for <rdar://problem/11627873>. Warn about<br>
> @@ -57,7 +57,7 @@ void f(A *a, B *b) {<br>
><br>
> @implementation D<br>
> - (void) method {<br>
> - [super method]; // expected-warning {{'method' is deprecated: first deprecated in OS X 10.2}}<br>
> + [super method]; // expected-warning {{'method' is deprecated: first deprecated in macOS 10.2}}<br>
> }<br>
> @end<br>
><br>
> @@ -112,9 +112,9 @@ id NSNibOwner, topNibObjects;<br>
> @end<br>
><br>
> void foo (A18804883* pa) {<br>
> - [pa interface_method]; // expected-error {{'interface_method' is unavailable: not available on OS X}}<br>
> + [pa interface_method]; // expected-error {{'interface_method' is unavailable: not available on macOS}}<br>
> [pa proto_method];<br>
> - [pa strange_method]; // expected-error {{'strange_method' is unavailable: not available on OS X}}<br>
> + [pa strange_method]; // expected-error {{'strange_method' is unavailable: not available on macOS}}<br>
> [pa always_available];<br>
> }<br>
><br>
><br>
> Modified: cfe/trunk/test/SemaObjC/attr-availability.m<br>
> URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/SemaObjC/attr-availability.m?rev=274064&r1=274063&r2=274064&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/SemaObjC/attr-availability.m?rev=274064&r1=274063&r2=274064&view=diff</a><br>
> ==============================================================================<br>
> --- cfe/trunk/test/SemaObjC/attr-availability.m (original)<br>
> +++ cfe/trunk/test/SemaObjC/attr-availability.m Tue Jun 28 15:55:30 2016<br>
> @@ -30,32 +30,32 @@<br>
> @interface B : A<br>
> - (void)method; // NOTE: we expect 'method' to *not* inherit availability.<br>
> - (void)partialMethod; // Likewise.<br>
> -- (void)overridden __attribute__((availability(macosx,introduced=10.4))); // expected-warning{{overriding method introduced after overridden method on OS X (10.4 vs. 10.3)}}<br>
> +- (void)overridden __attribute__((availability(macosx,introduced=10.4))); // expected-warning{{overriding method introduced after overridden method on macOS (10.4 vs. 10.3)}}<br>
> - (void)overridden2 __attribute__((availability(macosx,introduced=10.2)));<br>
> - (void)overridden3 __attribute__((availability(macosx,deprecated=10.4)));<br>
> -- (void)overridden4 __attribute__((availability(macosx,deprecated=10.2))); // expected-warning{{overriding method deprecated before overridden method on OS X (10.3 vs. 10.2)}}<br>
> +- (void)overridden4 __attribute__((availability(macosx,deprecated=10.2))); // expected-warning{{overriding method deprecated before overridden method on macOS (10.3 vs. 10.2)}}<br>
> - (void)overridden5 __attribute__((availability(macosx,introduced=10.3)));<br>
> -- (void)overridden6 __attribute__((availability(macosx,unavailable))); // expected-warning{{overriding method cannot be unavailable on OS X when its overridden method is available}}<br>
> +- (void)overridden6 __attribute__((availability(macosx,unavailable))); // expected-warning{{overriding method cannot be unavailable on macOS when its overridden method is available}}<br>
> - (void)unavailableMethod; // does *not* inherit unavailability<br>
> @end<br>
><br>
> void f(A *a, B *b) {<br>
> - [a method]; // expected-warning{{'method' is deprecated: first deprecated in OS X 10.2}}<br>
> + [a method]; // expected-warning{{'method' is deprecated: first deprecated in macOS 10.2}}<br>
> [b method]; // no-warning<br>
> - [a proto_method]; // expected-warning{{'proto_method' is deprecated: first deprecated in OS X 10.2}}<br>
> - [b proto_method]; // expected-warning{{'proto_method' is deprecated: first deprecated in OS X 10.2}}<br>
> + [a proto_method]; // expected-warning{{'proto_method' is deprecated: first deprecated in macOS 10.2}}<br>
> + [b proto_method]; // expected-warning{{'proto_method' is deprecated: first deprecated in macOS 10.2}}<br>
><br>
> #if defined(WARN_PARTIAL)<br>
> - // expected-warning@+2 {{'partialMethod' is partial: introduced in OS X 10.8}} expected-note@+2 {{explicitly redeclare 'partialMethod' to silence this warning}}<br>
> + // expected-warning@+2 {{'partialMethod' is partial: introduced in macOS 10.8}} expected-note@+2 {{explicitly redeclare 'partialMethod' to silence this warning}}<br>
> #endif<br>
> [a partialMethod];<br>
> [b partialMethod]; // no warning<br>
> #if defined(WARN_PARTIAL)<br>
> - // 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}}<br>
> + // 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}}<br>
> #endif<br>
> [a partial_proto_method];<br>
> #if defined(WARN_PARTIAL)<br>
> - // 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}}<br>
> + // 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}}<br>
> #endif<br>
> [b partial_proto_method];<br>
> }<br>
> @@ -89,7 +89,7 @@ void f_after_redecl(A *a, B *b) {<br>
><br>
> @implementation D<br>
> - (void) method {<br>
> - [super method]; // expected-warning {{'method' is deprecated: first deprecated in OS X 10.2}}<br>
> + [super method]; // expected-warning {{'method' is deprecated: first deprecated in macOS 10.2}}<br>
> }<br>
> @end<br>
><br>
> @@ -163,14 +163,14 @@ void partialfun(PartialI* a) {<br>
> [a partialMethod]; // no warning<br>
> [a ipartialMethod1]; // no warning<br>
> #if defined(WARN_PARTIAL)<br>
> - // expected-warning@+2 {{'ipartialMethod2' is partial: introduced in OS X 10.8}} expected-note@+2 {{explicitly redeclare 'ipartialMethod2' to silence this warning}}<br>
> + // expected-warning@+2 {{'ipartialMethod2' is partial: introduced in macOS 10.8}} expected-note@+2 {{explicitly redeclare 'ipartialMethod2' to silence this warning}}<br>
> #endif<br>
> [a ipartialMethod2];<br>
> [a ppartialMethod]; // no warning<br>
> [PartialI partialMethod]; // no warning<br>
> [PartialI ipartialMethod1]; // no warning<br>
> #if defined(WARN_PARTIAL)<br>
> - // expected-warning@+2 {{'ipartialMethod2' is partial: introduced in OS X 10.8}} expected-note@+2 {{explicitly redeclare 'ipartialMethod2' to silence this warning}}<br>
> + // expected-warning@+2 {{'ipartialMethod2' is partial: introduced in macOS 10.8}} expected-note@+2 {{explicitly redeclare 'ipartialMethod2' to silence this warning}}<br>
> #endif<br>
> [PartialI ipartialMethod2];<br>
> [PartialI ppartialMethod]; // no warning<br>
> @@ -183,7 +183,7 @@ __attribute__((availability(macosx, intr<br>
> @end<br>
><br>
> #if defined(WARN_PARTIAL)<br>
> - // expected-warning@+2 {{'PartialI2' is partial: introduced in OS X 10.8}} expected-note@+2 {{explicitly redeclare 'PartialI2' to silence this warning}}<br>
> + // expected-warning@+2 {{'PartialI2' is partial: introduced in macOS 10.8}} expected-note@+2 {{explicitly redeclare 'PartialI2' to silence this warning}}<br>
> #endif<br>
> void partialinter1(PartialI2* p) {<br>
> }<br>
> @@ -220,7 +220,7 @@ void use_myEnum() {<br>
> @end<br>
><br>
> void testAvailabilityP2(id<AvailabilityP2> obj) {<br>
> - [obj methodA]; // expected-warning{{'methodA' is deprecated: first deprecated in OS X 10.2}}<br>
> + [obj methodA]; // expected-warning{{'methodA' is deprecated: first deprecated in macOS 10.2}}<br>
> [obj methodB]; // expected-error{{'methodB' is unavailable}}<br>
> }<br>
><br>
> @@ -242,13 +242,13 @@ __attribute__((objc_root_class))<br>
> -(void)methodA {<br>
> // Make sure we're not inheriting availability.<br>
> id<AvailabilityP2> obj = self;<br>
> - [obj methodA]; // expected-warning{{'methodA' is deprecated: first deprecated in OS X 10.2}}<br>
> + [obj methodA]; // expected-warning{{'methodA' is deprecated: first deprecated in macOS 10.2}}<br>
> [obj methodB]; // expected-error{{'methodB' is unavailable}}<br>
> }<br>
> -(void)methodB {<br>
> // Make sure we're not inheriting unavailability.<br>
> id<AvailabilityP2> obj = self;<br>
> - [obj methodA]; // expected-warning{{'methodA' is deprecated: first deprecated in OS X 10.2}}<br>
> + [obj methodA]; // expected-warning{{'methodA' is deprecated: first deprecated in macOS 10.2}}<br>
> [obj methodB]; // expected-error{{'methodB' is unavailable}}<br>
> }<br>
><br>
> @@ -257,13 +257,13 @@ __attribute__((objc_root_class))<br>
> void testImplementsAvailabilityP2b(ImplementsAvailabilityP2b *obj) {<br>
> // still get warnings/errors because we see the protocol version.<br>
><br>
> - [obj methodA]; // expected-warning{{'methodA' is deprecated: first deprecated in OS X 10.2}}<br>
> + [obj methodA]; // expected-warning{{'methodA' is deprecated: first deprecated in macOS 10.2}}<br>
> [obj methodB]; // expected-error{{'methodB' is unavailable}}<br>
> }<br>
><br>
> __attribute__((objc_root_class))<br>
> @interface ImplementsAvailabilityP2c <AvailabilityP2><br>
> --(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)}}<br>
> +-(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)}}<br>
> -(void)methodB __attribute__((unavailable));<br>
> @end<br>
><br>
> @@ -272,7 +272,7 @@ __attribute__((objc_root_class))<br>
> @end<br>
><br>
> @implementation ImplementsAvailabilityP2d<br>
> --(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)}}<br>
> +-(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)}}<br>
> {<br>
> }<br>
> -(void)methodB __attribute__((unavailable)) {<br>
><br>
> Modified: cfe/trunk/test/SemaObjC/attr-deprecated.m<br>
> URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/SemaObjC/attr-deprecated.m?rev=274064&r1=274063&r2=274064&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/SemaObjC/attr-deprecated.m?rev=274064&r1=274063&r2=274064&view=diff</a><br>
> ==============================================================================<br>
> --- cfe/trunk/test/SemaObjC/attr-deprecated.m (original)<br>
> +++ cfe/trunk/test/SemaObjC/attr-deprecated.m Tue Jun 28 15:55:30 2016<br>
> @@ -235,7 +235,7 @@ expected-note {{property declared here}}<br>
><br>
> id PID = 0;<br>
> const char * func() {<br>
> - return [PID cString]; // expected-warning {{'cString' is deprecated: first deprecated in OS X 10.4}}<br>
> + return [PID cString]; // expected-warning {{'cString' is deprecated: first deprecated in macOS 10.4}}<br>
> }<br>
><br>
> // rdar://18960378<br>
><br>
> Modified: cfe/trunk/test/SemaObjC/property-noninherited-availability-attr.m<br>
> URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/SemaObjC/property-noninherited-availability-attr.m?rev=274064&r1=274063&r2=274064&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/SemaObjC/property-noninherited-availability-attr.m?rev=274064&r1=274063&r2=274064&view=diff</a><br>
> ==============================================================================<br>
> --- cfe/trunk/test/SemaObjC/property-noninherited-availability-attr.m (original)<br>
> +++ cfe/trunk/test/SemaObjC/property-noninherited-availability-attr.m Tue Jun 28 15:55:30 2016<br>
> @@ -20,8 +20,8 @@<br>
> @end<br>
><br>
> void test(Foo *y, Bar *x, id<myProtocol> z) {<br>
> - y.myProperty = 0; // expected-warning {{'myProperty' is deprecated: first deprecated in OS X 10.8}}<br>
> - (void)[y myProperty]; // expected-warning {{'myProperty' is deprecated: first deprecated in OS X 10.8}}<br>
> + y.myProperty = 0; // expected-warning {{'myProperty' is deprecated: first deprecated in macOS 10.8}}<br>
> + (void)[y myProperty]; // expected-warning {{'myProperty' is deprecated: first deprecated in macOS 10.8}}<br>
><br>
> x.myProperty = 1; // no-warning<br>
> (void)[x myProperty]; // no-warning<br>
> @@ -29,5 +29,5 @@ void test(Foo *y, Bar *x, id<myProtocol><br>
> x.myProtocolProperty = 0; // no-warning<br>
><br>
> (void)[x myProtocolProperty]; // no-warning<br>
> - (void)[z myProtocolProperty]; // expected-warning {{'myProtocolProperty' is deprecated: first deprecated in OS X 10.8}}<br>
> + (void)[z myProtocolProperty]; // expected-warning {{'myProtocolProperty' is deprecated: first deprecated in macOS 10.8}}<br>
> }<br>
><br>
><br>
> _______________________________________________<br>
> cfe-commits mailing list<br>
> <a href="mailto:cfe-commits@lists.llvm.org">cfe-commits@lists.llvm.org</a><br>
> <a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits</a><br>
</div></div></blockquote></div><br></div>