diff options
author | Aaron Ballman <aaron@aaronballman.com> | 2014-04-18 13:13:15 +0000 |
---|---|---|
committer | Aaron Ballman <aaron@aaronballman.com> | 2014-04-18 13:13:15 +0000 |
commit | 0491afaf5f6e664eb11949ace40ad5e783c66e12 (patch) | |
tree | f2d0120d8a2f62a276b9c61085cb2b987799b300 /clang/lib/Analysis/ThreadSafety.cpp | |
parent | 474011d55d8fbea4300a720ca771a9e51f2c4bc5 (diff) | |
download | bcm5719-llvm-0491afaf5f6e664eb11949ace40ad5e783c66e12.tar.gz bcm5719-llvm-0491afaf5f6e664eb11949ace40ad5e783c66e12.zip |
Updating to use more range-based for loops, nullptr and auto. No functional changes.
llvm-svn: 206590
Diffstat (limited to 'clang/lib/Analysis/ThreadSafety.cpp')
-rw-r--r-- | clang/lib/Analysis/ThreadSafety.cpp | 34 |
1 files changed, 14 insertions, 20 deletions
diff --git a/clang/lib/Analysis/ThreadSafety.cpp b/clang/lib/Analysis/ThreadSafety.cpp index 63063e02c67..94d8e7025c6 100644 --- a/clang/lib/Analysis/ThreadSafety.cpp +++ b/clang/lib/Analysis/ThreadSafety.cpp @@ -2420,23 +2420,22 @@ void ThreadSafetyAnalyzer::runAnalysis(AnalysisDeclContext &AC) { StringRef CapDiagKind = "mutex"; SourceLocation Loc = D->getLocation(); - for (unsigned i = 0; i < ArgAttrs.size(); ++i) { - Attr *Attr = ArgAttrs[i]; + for (const auto *Attr : ArgAttrs) { Loc = Attr->getLocation(); - if (RequiresCapabilityAttr *A = dyn_cast<RequiresCapabilityAttr>(Attr)) { + if (const auto *A = dyn_cast<RequiresCapabilityAttr>(Attr)) { getMutexIDs(A->isShared() ? SharedLocksToAdd : ExclusiveLocksToAdd, A, 0, D); CapDiagKind = ClassifyDiagnostic(A); - } else if (auto *A = dyn_cast<ReleaseCapabilityAttr>(Attr)) { + } else if (const auto *A = dyn_cast<ReleaseCapabilityAttr>(Attr)) { // UNLOCK_FUNCTION() is used to hide the underlying lock implementation. // We must ignore such methods. if (A->args_size() == 0) return; // FIXME -- deal with exclusive vs. shared unlock functions? - getMutexIDs(ExclusiveLocksToAdd, A, (Expr*) 0, D); - getMutexIDs(LocksReleased, A, (Expr*) 0, D); + getMutexIDs(ExclusiveLocksToAdd, A, nullptr, D); + getMutexIDs(LocksReleased, A, nullptr, D); CapDiagKind = ClassifyDiagnostic(A); - } else if (auto *A = dyn_cast<AcquireCapabilityAttr>(Attr)) { + } else if (const auto *A = dyn_cast<AcquireCapabilityAttr>(Attr)) { if (A->args_size() == 0) return; getMutexIDs(A->isShared() ? SharedLocksAcquired @@ -2487,7 +2486,7 @@ void ThreadSafetyAnalyzer::runAnalysis(AnalysisDeclContext &AC) { PE = CurrBlock->pred_end(); PI != PE; ++PI) { // if *PI -> CurrBlock is a back edge - if (*PI == 0 || !VisitedBlocks.alreadySet(*PI)) + if (*PI == nullptr || !VisitedBlocks.alreadySet(*PI)) continue; int PrevBlockID = (*PI)->getBlockID(); @@ -2530,9 +2529,7 @@ void ThreadSafetyAnalyzer::runAnalysis(AnalysisDeclContext &AC) { // Process continue and break blocks. Assume that the lockset for the // resulting block is unaffected by any discrepancies in them. - for (unsigned SpecialI = 0, SpecialN = SpecialBlocks.size(); - SpecialI < SpecialN; ++SpecialI) { - CFGBlock *PrevBlock = SpecialBlocks[SpecialI]; + for (const auto *PrevBlock : SpecialBlocks) { int PrevBlockID = PrevBlock->getBlockID(); CFGBlockInfo *PrevBlockInfo = &BlockInfo[PrevBlockID]; @@ -2628,17 +2625,14 @@ void ThreadSafetyAnalyzer::runAnalysis(AnalysisDeclContext &AC) { // by *-LOCK_FUNCTION and UNLOCK_FUNCTION. The intersect below will then // issue the appropriate warning. // FIXME: the location here is not quite right. - for (unsigned i=0,n=ExclusiveLocksAcquired.size(); i<n; ++i) { - ExpectedExitSet.addLock(FactMan, ExclusiveLocksAcquired[i], + for (const auto &Lock : ExclusiveLocksAcquired) + ExpectedExitSet.addLock(FactMan, Lock, LockData(D->getLocation(), LK_Exclusive)); - } - for (unsigned i=0,n=SharedLocksAcquired.size(); i<n; ++i) { - ExpectedExitSet.addLock(FactMan, SharedLocksAcquired[i], + for (const auto &Lock : SharedLocksAcquired) + ExpectedExitSet.addLock(FactMan, Lock, LockData(D->getLocation(), LK_Shared)); - } - for (unsigned i=0,n=LocksReleased.size(); i<n; ++i) { - ExpectedExitSet.removeLock(FactMan, LocksReleased[i]); - } + for (const auto &Lock : LocksReleased) + ExpectedExitSet.removeLock(FactMan, Lock); // FIXME: Should we call this function for all blocks which exit the function? intersectAndWarn(ExpectedExitSet, Final->ExitSet, |