From ef7226a076acca888be7fb613d4ec68bc81a85df Mon Sep 17 00:00:00 2001 From: Erik Pilkington Date: Tue, 8 Aug 2017 17:09:09 +0000 Subject: [PATCH] [Availability] Don't make an availability attribute imply default visibility on macOS Fixes PR33796, rdar://33655115 Differential revision: https://reviews.llvm.org/D36191 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@310382 91177308-0d34-0410-b5e6-96231b3b80d8 --- docs/ReleaseNotes.rst | 3 +++ lib/AST/Decl.cpp | 8 -------- test/CodeGen/attr-availability.c | 6 +++--- 3 files changed, 6 insertions(+), 11 deletions(-) diff --git a/docs/ReleaseNotes.rst b/docs/ReleaseNotes.rst index 08f9b8606d..6e4a2d5f5c 100644 --- a/docs/ReleaseNotes.rst +++ b/docs/ReleaseNotes.rst @@ -94,6 +94,9 @@ Clang now supports the ... Attribute Changes in Clang -------------------------- +- The presence of __attribute__((availability(...))) on a declaration no longer + implies default visibility for that declaration on macOS. + - ... Windows Support diff --git a/lib/AST/Decl.cpp b/lib/AST/Decl.cpp index 26f194bc1c..a80306bf5b 100644 --- a/lib/AST/Decl.cpp +++ b/lib/AST/Decl.cpp @@ -216,14 +216,6 @@ static Optional getVisibilityOf(const NamedDecl *D, return getVisibilityFromAttr(A); } - // If we're on Mac OS X, an 'availability' for Mac OS X attribute - // implies visibility(default). - if (D->getASTContext().getTargetInfo().getTriple().isOSDarwin()) { - for (const auto *A : D->specific_attrs()) - if (A->getPlatform()->getName().equals("macos")) - return DefaultVisibility; - } - return None; } diff --git a/test/CodeGen/attr-availability.c b/test/CodeGen/attr-availability.c index ccbbb62f8c..87e137cfe9 100644 --- a/test/CodeGen/attr-availability.c +++ b/test/CodeGen/attr-availability.c @@ -8,9 +8,9 @@ void f2(); void f2() { } -// CHECK-10_4-LABEL: define void @f3 -// CHECK-10_5-LABEL: define void @f3 -// CHECK-10_6-LABEL: define void @f3 +// CHECK-10_4-LABEL: define hidden void @f3 +// CHECK-10_5-LABEL: define hidden void @f3 +// CHECK-10_6-LABEL: define hidden void @f3 void f3() __attribute__((availability(macosx,introduced=10.5))); void f3() { } -- 2.40.0