summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSimon Pilgrim <llvm-dev@redking.me.uk>2020-01-13 14:28:49 +0000
committerSimon Pilgrim <llvm-dev@redking.me.uk>2020-01-13 15:07:55 +0000
commit7af67259cdd66811941514a263dd0f81c491d8f1 (patch)
tree36e7ac0b1eeae7b4f692fcdcaaa43258c771c909
parent0b91e78a719065c67b33bf82b0cde3d4ecfe3b7d (diff)
downloadbcm5719-llvm-7af67259cdd66811941514a263dd0f81c491d8f1.tar.gz
bcm5719-llvm-7af67259cdd66811941514a263dd0f81c491d8f1.zip
Sema::getOwningModule - take const Decl* type.
Fixes static analyzer warning that const_cast was being used despite only const methods being called.
-rw-r--r--clang/include/clang/Sema/Sema.h4
-rw-r--r--clang/lib/Sema/SemaOverload.cpp7
2 files changed, 6 insertions, 5 deletions
diff --git a/clang/include/clang/Sema/Sema.h b/clang/include/clang/Sema/Sema.h
index 851b25922f5..b95a5017d90 100644
--- a/clang/include/clang/Sema/Sema.h
+++ b/clang/include/clang/Sema/Sema.h
@@ -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.
diff --git a/clang/lib/Sema/SemaOverload.cpp b/clang/lib/Sema/SemaOverload.cpp
index be02a199a51..56d9522eee0 100644
--- a/clang/lib/Sema/SemaOverload.cpp
+++ b/clang/lib/Sema/SemaOverload.cpp
@@ -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() : "");
}
OpenPOWER on IntegriCloud