forked from OSchip/llvm-project
Sema::getOwningModule - take const Decl* type.
Fixes static analyzer warning that const_cast was being used despite only const methods being called.
This commit is contained in:
parent
0b91e78a71
commit
7af67259cd
|
@ -1725,7 +1725,9 @@ private:
|
|||
|
||||
public:
|
||||
/// Get the module owning an entity.
|
||||
Module *getOwningModule(Decl *Entity) { return Entity->getOwningModule(); }
|
||||
Module *getOwningModule(const Decl *Entity) {
|
||||
return Entity->getOwningModule();
|
||||
}
|
||||
|
||||
/// Make a merged definition of an existing hidden definition \p ND
|
||||
/// visible at the specified location.
|
||||
|
|
|
@ -9673,8 +9673,7 @@ bool Sema::isEquivalentInternalLinkageDeclaration(const NamedDecl *A,
|
|||
// entity in different modules.
|
||||
if (!VA->getDeclContext()->getRedeclContext()->Equals(
|
||||
VB->getDeclContext()->getRedeclContext()) ||
|
||||
getOwningModule(const_cast<ValueDecl *>(VA)) ==
|
||||
getOwningModule(const_cast<ValueDecl *>(VB)) ||
|
||||
getOwningModule(VA) == getOwningModule(VB) ||
|
||||
VA->isExternallyVisible() || VB->isExternallyVisible())
|
||||
return false;
|
||||
|
||||
|
@ -9711,12 +9710,12 @@ void Sema::diagnoseEquivalentInternalLinkageDeclarations(
|
|||
SourceLocation Loc, const NamedDecl *D, ArrayRef<const NamedDecl *> Equiv) {
|
||||
Diag(Loc, diag::ext_equivalent_internal_linkage_decl_in_modules) << D;
|
||||
|
||||
Module *M = getOwningModule(const_cast<NamedDecl*>(D));
|
||||
Module *M = getOwningModule(D);
|
||||
Diag(D->getLocation(), diag::note_equivalent_internal_linkage_decl)
|
||||
<< !M << (M ? M->getFullModuleName() : "");
|
||||
|
||||
for (auto *E : Equiv) {
|
||||
Module *M = getOwningModule(const_cast<NamedDecl*>(E));
|
||||
Module *M = getOwningModule(E);
|
||||
Diag(E->getLocation(), diag::note_equivalent_internal_linkage_decl)
|
||||
<< !M << (M ? M->getFullModuleName() : "");
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue