aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Analysis/ThreadSafetyCommon.cpp
diff options
context:
space:
mode:
authorRichard Smith <richard-llvm@metafoo.co.uk>2015-08-12 02:17:52 +0000
committerRichard Smith <richard-llvm@metafoo.co.uk>2015-08-12 02:17:52 +0000
commitdd55b95fb2c2d3d65cf37c3cd8173380a97dd673 (patch)
tree3e3083e814672c88bd71ab5483adf5ab21909d30 /clang/lib/Analysis/ThreadSafetyCommon.cpp
parent9e5f2a96f1c2e0ba2456b86102d5f558bcfc01dc (diff)
downloadllvm-dd55b95fb2c2d3d65cf37c3cd8173380a97dd673.zip
llvm-dd55b95fb2c2d3d65cf37c3cd8173380a97dd673.tar.gz
llvm-dd55b95fb2c2d3d65cf37c3cd8173380a97dd673.tar.bz2
[modules] Fix thread safety analysis to cope with merging of FieldDecls across modules.
llvm-svn: 244714
Diffstat (limited to 'clang/lib/Analysis/ThreadSafetyCommon.cpp')
-rw-r--r--clang/lib/Analysis/ThreadSafetyCommon.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/clang/lib/Analysis/ThreadSafetyCommon.cpp b/clang/lib/Analysis/ThreadSafetyCommon.cpp
index d4b1ce2..3c4d6b3 100644
--- a/clang/lib/Analysis/ThreadSafetyCommon.cpp
+++ b/clang/lib/Analysis/ThreadSafetyCommon.cpp
@@ -344,7 +344,8 @@ til::SExpr *SExprBuilder::translateMemberExpr(const MemberExpr *ME,
til::SExpr *BE = translate(ME->getBase(), Ctx);
til::SExpr *E = new (Arena) til::SApply(BE);
- const ValueDecl *D = ME->getMemberDecl();
+ const ValueDecl *D =
+ cast<ValueDecl>(ME->getMemberDecl()->getCanonicalDecl());
if (auto *VD = dyn_cast<CXXMethodDecl>(D))
D = getFirstVirtualDecl(VD);