Index: lib/Sema/SemaDeclAttr.cpp =================================================================== --- lib/Sema/SemaDeclAttr.cpp +++ lib/Sema/SemaDeclAttr.cpp @@ -7467,6 +7467,7 @@ const AvailabilityAttr *AA = getAttrForPlatform(SemaRef.getASTContext(), OffendingDecl); VersionTuple Introduced = AA->getIntroduced(); + Introduced.UseDotAsSeparator(); if (AvailabilityStack.back() >= Introduced) return; Index: test/FixIt/fixit-availability-method.mm =================================================================== --- /dev/null +++ test/FixIt/fixit-availability-method.mm @@ -0,0 +1,13 @@ +// RUN: %clang_cc1 -triple x86_64-apple-macosx-10.11 -Wunguarded-availability -fdiagnostics-parseable-fixits -fsyntax-only -verify %s + +@interface foo +- (void) method_bar __attribute__((availability(macosx, introduced = 10_12))); // expected-note {{'method_bar' has been explicitly marked partial here}} +@end + +int main() { + [foo method_bar]; // \ + // expected-warning {{'method_bar' is only available on macOS 10.12 or newer}} \ + // expected-note {{enclose 'method_bar' in an @available check to silence this warning}} \ + // CHECK: "fix-it:.*if (@available(macOS 10.12, *))" + return 0; +}