diff options
author | DeLesley Hutchins <delesley@google.com> | 2013-11-05 23:09:56 +0000 |
---|---|---|
committer | DeLesley Hutchins <delesley@google.com> | 2013-11-05 23:09:56 +0000 |
commit | 5ede5cc9ba0293bf0764e83cc264c40920bf1d7d (patch) | |
tree | 3b3a193abaaf80e3ecb226fe90aa173ba7a5d63c /clang/lib/Analysis/ThreadSafety.cpp | |
parent | 6664df12fb65100bd3643a56b30f63eb27c6b509 (diff) | |
download | bcm5719-llvm-5ede5cc9ba0293bf0764e83cc264c40920bf1d7d.tar.gz bcm5719-llvm-5ede5cc9ba0293bf0764e83cc264c40920bf1d7d.zip |
Thread safety analysis: check pt_guarded_by attribute when calling -> and *
on smart pointers. -Wthread-safety-beta only.
llvm-svn: 194103
Diffstat (limited to 'clang/lib/Analysis/ThreadSafety.cpp')
-rw-r--r-- | clang/lib/Analysis/ThreadSafety.cpp | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/clang/lib/Analysis/ThreadSafety.cpp b/clang/lib/Analysis/ThreadSafety.cpp index e5e5f18b515..607526db3e5 100644 --- a/clang/lib/Analysis/ThreadSafety.cpp +++ b/clang/lib/Analysis/ThreadSafety.cpp @@ -2134,6 +2134,14 @@ void BuildLockset::VisitCallExpr(CallExpr *Exp) { checkAccess(Source, AK_Read); break; } + case OO_Star: + case OO_Arrow: { + if (Analyzer->Handler.issueBetaWarnings()) { + const Expr *Target = OE->getArg(0); + checkPtAccess(Target, AK_Read); + } + break; + } default: { const Expr *Source = OE->getArg(0); checkAccess(Source, AK_Read); |