forked from OSchip/llvm-project
Add a hasExternalLinkage helper. No functionality change.
llvm-svn: 176607
This commit is contained in:
parent
8f326a5a39
commit
45b620aab5
|
@ -214,6 +214,11 @@ public:
|
|||
/// \brief Determine what kind of linkage this entity has.
|
||||
Linkage getLinkage() const;
|
||||
|
||||
/// \brief True if this decl has external linkage.
|
||||
bool hasExternalLinkage() const {
|
||||
return getLinkage() == ExternalLinkage;
|
||||
}
|
||||
|
||||
/// \brief Determines the visibility of this entity.
|
||||
Visibility getVisibility() const {
|
||||
return getLinkageAndVisibility().getVisibility();
|
||||
|
|
|
@ -148,7 +148,7 @@ private:
|
|||
if (FD->getName() == "CFRetain" &&
|
||||
FD->getNumParams() == 1 &&
|
||||
FD->getParent()->isTranslationUnit() &&
|
||||
FD->getLinkage() == ExternalLinkage) {
|
||||
FD->hasExternalLinkage()) {
|
||||
Expr *Arg = callE->getArg(0);
|
||||
if (const ImplicitCastExpr *ICE = dyn_cast<ImplicitCastExpr>(Arg)) {
|
||||
const Expr *sub = ICE->getSubExpr();
|
||||
|
@ -413,7 +413,7 @@ private:
|
|||
FD = dyn_cast_or_null<FunctionDecl>(callE->getCalleeDecl()))
|
||||
if (FD->getName() == "CFRetain" && FD->getNumParams() == 1 &&
|
||||
FD->getParent()->isTranslationUnit() &&
|
||||
FD->getLinkage() == ExternalLinkage)
|
||||
FD->hasExternalLinkage())
|
||||
return true;
|
||||
|
||||
return false;
|
||||
|
|
|
@ -94,7 +94,7 @@ bool trans::isPlusOne(const Expr *E) {
|
|||
if (FD->isGlobal() &&
|
||||
FD->getIdentifier() &&
|
||||
FD->getParent()->isTranslationUnit() &&
|
||||
FD->getLinkage() == ExternalLinkage &&
|
||||
FD->hasExternalLinkage() &&
|
||||
ento::cocoa::isRefType(callE->getType(), "CF",
|
||||
FD->getIdentifier()->getName())) {
|
||||
StringRef fname = FD->getIdentifier()->getName();
|
||||
|
@ -198,7 +198,7 @@ bool trans::isGlobalVar(Expr *E) {
|
|||
E = E->IgnoreParenCasts();
|
||||
if (DeclRefExpr *DRE = dyn_cast<DeclRefExpr>(E))
|
||||
return DRE->getDecl()->getDeclContext()->isFileContext() &&
|
||||
DRE->getDecl()->getLinkage() == ExternalLinkage;
|
||||
DRE->getDecl()->hasExternalLinkage();
|
||||
if (ConditionalOperator *condOp = dyn_cast<ConditionalOperator>(E))
|
||||
return isGlobalVar(condOp->getTrueExpr()) &&
|
||||
isGlobalVar(condOp->getFalseExpr());
|
||||
|
|
|
@ -360,7 +360,7 @@ static bool ShouldRemoveFromUnused(Sema *SemaRef, const DeclaratorDecl *D) {
|
|||
return !SemaRef->ShouldWarnIfUnusedFileScopedDecl(DeclToCheck);
|
||||
}
|
||||
|
||||
if (D->getLinkage() == ExternalLinkage)
|
||||
if (D->hasExternalLinkage())
|
||||
return true;
|
||||
|
||||
return false;
|
||||
|
@ -402,13 +402,13 @@ void Sema::getUndefinedButUsed(
|
|||
if (FunctionDecl *FD = dyn_cast<FunctionDecl>(ND)) {
|
||||
if (FD->isDefined())
|
||||
continue;
|
||||
if (FD->getLinkage() == ExternalLinkage &&
|
||||
if (FD->hasExternalLinkage() &&
|
||||
!FD->getMostRecentDecl()->isInlined())
|
||||
continue;
|
||||
} else {
|
||||
if (cast<VarDecl>(ND)->hasDefinition() != VarDecl::DeclarationOnly)
|
||||
continue;
|
||||
if (ND->getLinkage() == ExternalLinkage)
|
||||
if (ND->hasExternalLinkage())
|
||||
continue;
|
||||
}
|
||||
|
||||
|
|
|
@ -1223,7 +1223,7 @@ bool Sema::ShouldWarnIfUnusedFileScopedDecl(const DeclaratorDecl *D) const {
|
|||
}
|
||||
|
||||
// Only warn for unused decls internal to the translation unit.
|
||||
if (D->getLinkage() == ExternalLinkage)
|
||||
if (D->hasExternalLinkage())
|
||||
return false;
|
||||
|
||||
return true;
|
||||
|
@ -1584,7 +1584,7 @@ static void filterNonConflictingPreviousDecls(ASTContext &context,
|
|||
return;
|
||||
|
||||
// If this declaration has external
|
||||
bool hasExternalLinkage = (decl->getLinkage() == ExternalLinkage);
|
||||
bool hasExternalLinkage = decl->hasExternalLinkage();
|
||||
|
||||
LookupResult::Filter filter = previous.makeFilter();
|
||||
while (filter.hasNext()) {
|
||||
|
@ -4577,7 +4577,7 @@ static void checkAttributesAfterMerging(Sema &S, NamedDecl &ND) {
|
|||
}
|
||||
}
|
||||
if (WeakRefAttr *Attr = ND.getAttr<WeakRefAttr>()) {
|
||||
if (ND.getLinkage() == ExternalLinkage) {
|
||||
if (ND.hasExternalLinkage()) {
|
||||
S.Diag(Attr->getLocation(), diag::err_attribute_weakref_not_static);
|
||||
ND.dropAttr<WeakRefAttr>();
|
||||
}
|
||||
|
@ -6388,7 +6388,7 @@ Sema::ActOnFunctionDeclarator(Scope *S, Declarator &D, DeclContext *DC,
|
|||
|
||||
// If there's a #pragma GCC visibility in scope, and this isn't a class
|
||||
// member, set the visibility of this function.
|
||||
if (NewFD->getLinkage() == ExternalLinkage && !DC->isRecord())
|
||||
if (NewFD->hasExternalLinkage() && !DC->isRecord())
|
||||
AddPushedVisibilityAttribute(NewFD);
|
||||
|
||||
// If there's a #pragma clang arc_cf_code_audited in scope, consider
|
||||
|
@ -7782,7 +7782,7 @@ void Sema::CheckCompleteVariableDeclaration(VarDecl *var) {
|
|||
}
|
||||
|
||||
if (var->isThisDeclarationADefinition() &&
|
||||
var->getLinkage() == ExternalLinkage &&
|
||||
var->hasExternalLinkage() &&
|
||||
getDiagnostics().getDiagnosticLevel(
|
||||
diag::warn_missing_variable_declarations,
|
||||
var->getLocation())) {
|
||||
|
@ -7880,7 +7880,7 @@ Sema::FinalizeDeclaration(Decl *ThisDecl) {
|
|||
const DeclContext *DC = VD->getDeclContext();
|
||||
// If there's a #pragma GCC visibility in scope, and this isn't a class
|
||||
// member, set the visibility of this variable.
|
||||
if (VD->getLinkage() == ExternalLinkage && !DC->isRecord())
|
||||
if (VD->hasExternalLinkage() && !DC->isRecord())
|
||||
AddPushedVisibilityAttribute(VD);
|
||||
|
||||
if (VD->isFileVarDecl())
|
||||
|
|
|
@ -11364,7 +11364,7 @@ bool Sema::DefineUsedVTables() {
|
|||
Consumer.HandleVTable(Class, VTablesUsed[Canonical]);
|
||||
|
||||
// Optionally warn if we're emitting a weak vtable.
|
||||
if (Class->getLinkage() == ExternalLinkage &&
|
||||
if (Class->hasExternalLinkage() &&
|
||||
Class->getTemplateSpecializationKind() != TSK_ImplicitInstantiation) {
|
||||
const FunctionDecl *KeyFunctionDef = 0;
|
||||
if (!KeyFunction ||
|
||||
|
|
Loading…
Reference in New Issue