diff options
Diffstat (limited to 'clang/lib/Analysis/ThreadSafety.cpp')
-rw-r--r-- | clang/lib/Analysis/ThreadSafety.cpp | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/clang/lib/Analysis/ThreadSafety.cpp b/clang/lib/Analysis/ThreadSafety.cpp index 1d4d585332d..c271f380355 100644 --- a/clang/lib/Analysis/ThreadSafety.cpp +++ b/clang/lib/Analysis/ThreadSafety.cpp @@ -1900,10 +1900,10 @@ void BuildLockset::checkAccess(const Expr *Exp, AccessKind AK) { Analyzer->Handler.handleNoMutexHeld(D, POK_VarAccess, AK, Exp->getExprLoc()); - const AttrVec &ArgAttrs = D->getAttrs(); - for (unsigned i = 0, Size = ArgAttrs.size(); i < Size; ++i) - if (GuardedByAttr *GBAttr = dyn_cast<GuardedByAttr>(ArgAttrs[i])) - warnIfMutexNotHeld(D, Exp, AK, GBAttr->getArg(), POK_VarAccess); + for (specific_attr_iterator<GuardedByAttr> + I = D->specific_attr_begin<GuardedByAttr>(), + E = D->specific_attr_end<GuardedByAttr>(); I != E; ++I) + warnIfMutexNotHeld(D, Exp, AK, (*I)->getArg(), POK_VarAccess); } /// \brief Checks pt_guarded_by and pt_guarded_var attributes. @@ -1938,10 +1938,10 @@ void BuildLockset::checkPtAccess(const Expr *Exp, AccessKind AK) { Analyzer->Handler.handleNoMutexHeld(D, POK_VarDereference, AK, Exp->getExprLoc()); - const AttrVec &ArgAttrs = D->getAttrs(); - for (unsigned i = 0, Size = ArgAttrs.size(); i < Size; ++i) - if (PtGuardedByAttr *GBAttr = dyn_cast<PtGuardedByAttr>(ArgAttrs[i])) - warnIfMutexNotHeld(D, Exp, AK, GBAttr->getArg(), POK_VarDereference); + for (specific_attr_iterator<PtGuardedByAttr> + I = D->specific_attr_begin<PtGuardedByAttr>(), + E = D->specific_attr_end<PtGuardedByAttr>(); I != E; ++I) + warnIfMutexNotHeld(D, Exp, AK, (*I)->getArg(), POK_VarDereference); } |