On Mac OS X, the presence of an 'availability' attribute for that

platform implies default visibility. To achieve these, refactor our
lookup of explicit visibility so that we search for both an explicit
VisibilityAttr and an appropriate AvailabilityAttr, favoring the
VisibilityAttr if it is present.

llvm-svn: 128336
This commit is contained in:
Douglas Gregor
2011-03-26 12:10:19 +00:00
parent 34d00052cb
commit 1baf38f5a6
7 changed files with 113 additions and 61 deletions

View File

@@ -224,7 +224,7 @@ void CodeGenModule::setTypeVisibility(llvm::GlobalValue *GV,
return;
// Don't override an explicit visibility attribute.
if (RD->hasAttr<VisibilityAttr>())
if (RD->getExplicitVisibility())
return;
switch (RD->getTemplateSpecializationKind()) {