diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/StaticAnalyzer/Core/BugReporter.cpp | 12 | ||||
-rw-r--r-- | lib/StaticAnalyzer/Core/HTMLDiagnostics.cpp | 18 | ||||
-rw-r--r-- | lib/StaticAnalyzer/Core/PathDiagnostic.cpp | 44 | ||||
-rw-r--r-- | lib/StaticAnalyzer/Core/PlistDiagnostics.cpp | 18 | ||||
-rw-r--r-- | lib/StaticAnalyzer/Core/TextPathDiagnostics.cpp | 6 |
5 files changed, 45 insertions, 53 deletions
diff --git a/lib/StaticAnalyzer/Core/BugReporter.cpp b/lib/StaticAnalyzer/Core/BugReporter.cpp index 930f4bc99a..52c364e891 100644 --- a/lib/StaticAnalyzer/Core/BugReporter.cpp +++ b/lib/StaticAnalyzer/Core/BugReporter.cpp @@ -123,7 +123,7 @@ static void removeRedundantMsgs(PathPieces &path) { break; if (PathDiagnosticEventPiece *nextEvent = - dyn_cast<PathDiagnosticEventPiece>(path.front())) { + dyn_cast<PathDiagnosticEventPiece>(path.front().getPtr())) { PathDiagnosticEventPiece *event = cast<PathDiagnosticEventPiece>(piece); // Check to see if we should keep one of the two pieces. If we @@ -210,10 +210,10 @@ bool BugReporter::RemoveUnneededCalls(PathPieces &pieces, BugReport *R) { static void adjustCallLocations(PathPieces &Pieces, PathDiagnosticLocation *LastCallLocation = 0) { for (PathPieces::iterator I = Pieces.begin(), E = Pieces.end(); I != E; ++I) { - PathDiagnosticCallPiece *Call = dyn_cast<PathDiagnosticCallPiece>(&*I); + PathDiagnosticCallPiece *Call = dyn_cast<PathDiagnosticCallPiece>(*I); if (!Call) { - assert(I->getLocation().asLocation().isValid()); + assert((*I)->getLocation().asLocation().isValid()); continue; } @@ -946,7 +946,7 @@ public: // If the PathDiagnostic already has pieces, add the enclosing statement // of the first piece as a context as well. if (!PD.path.empty()) { - PrevLoc = PD.path.begin()->getLocation(); + PrevLoc = (*PD.path.begin())->getLocation(); if (const Stmt *S = PrevLoc.asStmt()) addExtendedContext(PDB.getEnclosingStmtLocation(S).asStmt()); @@ -1987,10 +1987,10 @@ static void CompactPathDiagnostic(PathPieces &path, const SourceManager& SM) { MacroStackTy MacroStack; PiecesTy Pieces; - for (PathPieces::iterator I = path.begin(), E = path.end(); + for (PathPieces::const_iterator I = path.begin(), E = path.end(); I!=E; ++I) { - PathDiagnosticPiece *piece = &*I; + PathDiagnosticPiece *piece = I->getPtr(); // Recursively compact calls. if (PathDiagnosticCallPiece *call=dyn_cast<PathDiagnosticCallPiece>(piece)){ diff --git a/lib/StaticAnalyzer/Core/HTMLDiagnostics.cpp b/lib/StaticAnalyzer/Core/HTMLDiagnostics.cpp index a5fe300fb6..73426da2b4 100644 --- a/lib/StaticAnalyzer/Core/HTMLDiagnostics.cpp +++ b/lib/StaticAnalyzer/Core/HTMLDiagnostics.cpp @@ -126,10 +126,10 @@ void HTMLDiagnostics::ReportDiag(const PathDiagnostic& D, // The path as already been prechecked that all parts of the path are // from the same file and that it is non-empty. - const SourceManager &SMgr = path.begin()->getLocation().getManager(); + const SourceManager &SMgr = (*path.begin())->getLocation().getManager(); assert(!path.empty()); FileID FID = - path.begin()->getLocation().asLocation().getExpansionLoc().getFileID(); + (*path.begin())->getLocation().asLocation().getExpansionLoc().getFileID(); assert(!FID.isInvalid()); // Create a new rewriter to generate HTML. @@ -139,10 +139,10 @@ void HTMLDiagnostics::ReportDiag(const PathDiagnostic& D, unsigned n = path.size(); unsigned max = n; - for (PathPieces::reverse_iterator I = path.rbegin(), + for (PathPieces::const_reverse_iterator I = path.rbegin(), E = path.rend(); I != E; ++I, --n) - HandlePiece(R, FID, *I, n, max); + HandlePiece(R, FID, **I, n, max); // Add line numbers, header, footer, etc. @@ -185,9 +185,9 @@ void HTMLDiagnostics::ReportDiag(const PathDiagnostic& D, << html::EscapeText(Entry->getName()) << "</td></tr>\n<tr><td class=\"rowname\">Location:</td><td>" "<a href=\"#EndPath\">line " - << path.rbegin()->getLocation().asLocation().getExpansionLineNumber() + << (*path.rbegin())->getLocation().asLocation().getExpansionLineNumber() << ", column " - << path.rbegin()->getLocation().asLocation().getExpansionColumnNumber() + << (*path.rbegin())->getLocation().asLocation().getExpansionColumnNumber() << "</a></td></tr>\n" "<tr><td class=\"rowname\">Description:</td><td>" << D.getVerboseDescription() << "</td></tr>\n"; @@ -503,16 +503,16 @@ unsigned HTMLDiagnostics::ProcessMacroPiece(raw_ostream &os, const PathDiagnosticMacroPiece& P, unsigned num) { - for (PathPieces::iterator I = P.subPieces.begin(), E=P.subPieces.end(); + for (PathPieces::const_iterator I = P.subPieces.begin(), E=P.subPieces.end(); I!=E; ++I) { if (const PathDiagnosticMacroPiece *MP = - dyn_cast<PathDiagnosticMacroPiece>(&*I)) { + dyn_cast<PathDiagnosticMacroPiece>(*I)) { num = ProcessMacroPiece(os, *MP, num); continue; } - if (PathDiagnosticEventPiece *EP = dyn_cast<PathDiagnosticEventPiece>(&*I)){ + if (PathDiagnosticEventPiece *EP = dyn_cast<PathDiagnosticEventPiece>(*I)) { os << "<div class=\"msg msgEvent\" style=\"width:94%; " "margin-left:5px\">" "<table class=\"msgT\"><tr>" diff --git a/lib/StaticAnalyzer/Core/PathDiagnostic.cpp b/lib/StaticAnalyzer/Core/PathDiagnostic.cpp index e2228aa13b..03513106ec 100644 --- a/lib/StaticAnalyzer/Core/PathDiagnostic.cpp +++ b/lib/StaticAnalyzer/Core/PathDiagnostic.cpp @@ -28,11 +28,11 @@ using namespace clang; using namespace ento; bool PathDiagnosticMacroPiece::containsEvent() const { - for (PathPieces::iterator I = subPieces.begin(), E = subPieces.end(); + for (PathPieces::const_iterator I = subPieces.begin(), E = subPieces.end(); I!=E; ++I) { if (isa<PathDiagnosticEventPiece>(*I)) return true; - if (PathDiagnosticMacroPiece *MP = dyn_cast<PathDiagnosticMacroPiece>(&*I)) + if (PathDiagnosticMacroPiece *MP = dyn_cast<PathDiagnosticMacroPiece>(*I)) if (MP->containsEvent()) return true; } @@ -59,21 +59,13 @@ PathDiagnosticCallPiece::~PathDiagnosticCallPiece() {} PathDiagnosticControlFlowPiece::~PathDiagnosticControlFlowPiece() {} PathDiagnosticMacroPiece::~PathDiagnosticMacroPiece() {} -PathPieces &PathPieces::operator=(const PathPieces & X) { - clear(); - for (llvm::ilist<Node>::const_iterator I = X.L.begin(), E = X.L.end(); - I != E; ++I) { - L.push_back(new Node(&*(I->Data))); - } - return *this; -} PathPieces::~PathPieces() {} void PathPieces::flattenTo(PathPieces &Primary, PathPieces &Current, bool ShouldFlattenMacros) const { - for (PathPieces::iterator I = begin(), E = end(); I != E; ++I) { - PathDiagnosticPiece *Piece = &*I; + for (PathPieces::const_iterator I = begin(), E = end(); I != E; ++I) { + PathDiagnosticPiece *Piece = I->getPtr(); switch (Piece->getKind()) { case PathDiagnosticPiece::Call: { @@ -153,7 +145,7 @@ void PathDiagnosticConsumer::HandlePathDiagnostic(PathDiagnostic *D) { if (!supportsCrossFileDiagnostics()) { // Verify that the entire path is from the same FileID. FileID FID; - const SourceManager &SMgr = D->path.begin()->getLocation().getManager(); + const SourceManager &SMgr = (*D->path.begin())->getLocation().getManager(); SmallVector<const PathPieces *, 5> WorkList; WorkList.push_back(&D->path); @@ -161,9 +153,9 @@ void PathDiagnosticConsumer::HandlePathDiagnostic(PathDiagnostic *D) { const PathPieces &path = *WorkList.back(); WorkList.pop_back(); - for (PathPieces::iterator I = path.begin(), E = path.end(); + for (PathPieces::const_iterator I = path.begin(), E = path.end(); I != E; ++I) { - const PathDiagnosticPiece *piece = &*I; + const PathDiagnosticPiece *piece = I->getPtr(); FullSourceLoc L = piece->getLocation().asLocation().getExpansionLoc(); if (FID.isInvalid()) { @@ -306,11 +298,11 @@ static Optional<bool> comparePath(const PathPieces &X, const PathPieces &Y) { if (X.size() != Y.size()) return X.size() < Y.size(); - PathPieces::iterator X_I = X.begin(), X_end = X.end(); - PathPieces::iterator Y_I = Y.begin(), Y_end = Y.end(); + PathPieces::const_iterator X_I = X.begin(), X_end = X.end(); + PathPieces::const_iterator Y_I = Y.begin(), Y_end = Y.end(); for ( ; X_I != X_end && Y_I != Y_end; ++X_I, ++Y_I) { - Optional<bool> b = comparePiece(*X_I, *Y_I); + Optional<bool> b = comparePiece(**X_I, **Y_I); if (b.hasValue()) return b.getValue(); } @@ -962,9 +954,9 @@ PathDiagnosticCallPiece::getCallExitEvent() const { } static void compute_path_size(const PathPieces &pieces, unsigned &size) { - for (PathPieces::iterator it = pieces.begin(), + for (PathPieces::const_iterator it = pieces.begin(), et = pieces.end(); it != et; ++it) { - const PathDiagnosticPiece *piece = &*it; + const PathDiagnosticPiece *piece = it->getPtr(); if (const PathDiagnosticCallPiece *cp = dyn_cast<PathDiagnosticCallPiece>(piece)) { compute_path_size(cp->path, size); @@ -1006,9 +998,9 @@ void PathDiagnosticPiece::Profile(llvm::FoldingSetNodeID &ID) const { void PathDiagnosticCallPiece::Profile(llvm::FoldingSetNodeID &ID) const { PathDiagnosticPiece::Profile(ID); - for (PathPieces::iterator it = path.begin(), + for (PathPieces::const_iterator it = path.begin(), et = path.end(); it != et; ++it) { - ID.Add(*it); + ID.Add(**it); } } @@ -1025,9 +1017,9 @@ void PathDiagnosticControlFlowPiece::Profile(llvm::FoldingSetNodeID &ID) const { void PathDiagnosticMacroPiece::Profile(llvm::FoldingSetNodeID &ID) const { PathDiagnosticSpotPiece::Profile(ID); - for (PathPieces::iterator I = subPieces.begin(), E = subPieces.end(); + for (PathPieces::const_iterator I = subPieces.begin(), E = subPieces.end(); I != E; ++I) - ID.Add(*I); + ID.Add(**I); } void PathDiagnostic::Profile(llvm::FoldingSetNodeID &ID) const { @@ -1039,8 +1031,8 @@ void PathDiagnostic::Profile(llvm::FoldingSetNodeID &ID) const { void PathDiagnostic::FullProfile(llvm::FoldingSetNodeID &ID) const { Profile(ID); - for (PathPieces::iterator I = path.begin(), E = path.end(); I != E; ++I) - ID.Add(*I); + for (PathPieces::const_iterator I = path.begin(), E = path.end(); I != E; ++I) + ID.Add(**I); for (meta_iterator I = meta_begin(), E = meta_end(); I != E; ++I) ID.AddString(*I); } diff --git a/lib/StaticAnalyzer/Core/PlistDiagnostics.cpp b/lib/StaticAnalyzer/Core/PlistDiagnostics.cpp index 2701951410..850955561e 100644 --- a/lib/StaticAnalyzer/Core/PlistDiagnostics.cpp +++ b/lib/StaticAnalyzer/Core/PlistDiagnostics.cpp @@ -294,8 +294,8 @@ static void ReportCall(raw_ostream &o, ReportPiece(o, *callEnterWithinCaller, FM, SM, LangOpts, indent, depth, true); - for (PathPieces::iterator I = P.path.begin(), E = P.path.end();I!=E;++I) - ReportPiece(o, *I, FM, SM, LangOpts, indent, depth, true); + for (PathPieces::const_iterator I = P.path.begin(), E = P.path.end();I!=E;++I) + ReportPiece(o, **I, FM, SM, LangOpts, indent, depth, true); --depth; @@ -313,9 +313,9 @@ static void ReportMacro(raw_ostream &o, unsigned indent, unsigned depth) { - for (PathPieces::iterator I = P.subPieces.begin(), E=P.subPieces.end(); + for (PathPieces::const_iterator I = P.subPieces.begin(), E=P.subPieces.end(); I!=E; ++I) { - ReportPiece(o, *I, FM, SM, LangOpts, indent, depth, false); + ReportPiece(o, **I, FM, SM, LangOpts, indent, depth, false); } } @@ -363,7 +363,7 @@ void PlistDiagnostics::FlushDiagnosticsImpl( const SourceManager* SM = 0; if (!Diags.empty()) - SM = &(*(*Diags.begin())->path.begin()).getLocation().getManager(); + SM = &(*(*Diags.begin())->path.begin())->getLocation().getManager(); for (std::vector<const PathDiagnostic*>::iterator DI = Diags.begin(), @@ -378,9 +378,9 @@ void PlistDiagnostics::FlushDiagnosticsImpl( const PathPieces &path = *WorkList.back(); WorkList.pop_back(); - for (PathPieces::iterator I = path.begin(), E = path.end(); + for (PathPieces::const_iterator I = path.begin(), E = path.end(); I!=E; ++I) { - const PathDiagnosticPiece *piece = &*I; + const PathDiagnosticPiece *piece = I->getPtr(); AddFID(FM, Fids, SM, piece->getLocation().asLocation()); ArrayRef<SourceRange> Ranges = piece->getRanges(); for (ArrayRef<SourceRange>::iterator I = Ranges.begin(), @@ -450,9 +450,9 @@ void PlistDiagnostics::FlushDiagnosticsImpl( o << " <array>\n"; - for (PathPieces::iterator I = D->path.begin(), E = D->path.end(); + for (PathPieces::const_iterator I = D->path.begin(), E = D->path.end(); I != E; ++I) - ReportDiag(o, *I, FM, *SM, LangOpts); + ReportDiag(o, **I, FM, *SM, LangOpts); o << " </array>\n"; diff --git a/lib/StaticAnalyzer/Core/TextPathDiagnostics.cpp b/lib/StaticAnalyzer/Core/TextPathDiagnostics.cpp index 9ba001eea5..d5706d6dbb 100644 --- a/lib/StaticAnalyzer/Core/TextPathDiagnostics.cpp +++ b/lib/StaticAnalyzer/Core/TextPathDiagnostics.cpp @@ -61,12 +61,12 @@ void TextPathDiagnostics::FlushDiagnosticsImpl( const PathDiagnostic *D = *it; PathPieces FlatPath = D->path.flatten(/*ShouldFlattenMacros=*/true); - for (PathPieces::iterator I = FlatPath.begin(), E = FlatPath.end(); + for (PathPieces::const_iterator I = FlatPath.begin(), E = FlatPath.end(); I != E; ++I) { unsigned diagID = Diag.getDiagnosticIDs()->getCustomDiagID(DiagnosticIDs::Note, - I->getString()); - Diag.Report(I->getLocation().asLocation(), diagID); + (*I)->getString()); + Diag.Report((*I)->getLocation().asLocation(), diagID); } } } |