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 | |
| 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')
| -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);  | 

