summaryrefslogtreecommitdiffstats
path: root/clang/lib/Analysis/ThreadSafety.cpp
diff options
context:
space:
mode:
authorDeLesley Hutchins <delesley@google.com>2013-11-05 23:09:56 +0000
committerDeLesley Hutchins <delesley@google.com>2013-11-05 23:09:56 +0000
commit5ede5cc9ba0293bf0764e83cc264c40920bf1d7d (patch)
tree3b3a193abaaf80e3ecb226fe90aa173ba7a5d63c /clang/lib/Analysis/ThreadSafety.cpp
parent6664df12fb65100bd3643a56b30f63eb27c6b509 (diff)
downloadbcm5719-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.cpp8
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);
OpenPOWER on IntegriCloud