On Thu, Mar 6, 2014 at 6:14 PM, David Blaikie <[email protected]> wrote:
> On Thu, Mar 6, 2014 at 5:23 AM, Alexander Kornienko <[email protected]> > wrote: > > Author: alexfh > > Date: Thu Mar 6 07:23:30 2014 > > New Revision: 203117 > > > > URL: http://llvm.org/viewvc/llvm-project?rev=203117&view=rev > > Log: > > Added an inserter for ArrayRef<SourceRange>. > > > > Summary: > > Added an inserter for ArrayRef<SourceRange>, as it is already needed in > at least > > two places (static analyzer and clang-tidy). > > You may be able to remove the single-argument (SourceRange) version of > this, since ArrayRef<T> is implicitly constructible from T (to create > a single-element ArrayRef<T>). Though the extra user defined > conversion might cause some hiccups. > Thanks for the idea, but this doesn't seem like the right trade-off here. > > - David > > > > > Reviewers: jordan_rose > > > > CC: cfe-commits, gribozavr > > > > Differential Revision: http://llvm-reviews.chandlerc.com/D2984 > > > > Modified: > > cfe/trunk/include/clang/Basic/Diagnostic.h > > cfe/trunk/lib/StaticAnalyzer/Frontend/AnalysisConsumer.cpp > > > > Modified: cfe/trunk/include/clang/Basic/Diagnostic.h > > URL: > http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Basic/Diagnostic.h?rev=203117&r1=203116&r2=203117&view=diff > > > ============================================================================== > > --- cfe/trunk/include/clang/Basic/Diagnostic.h (original) > > +++ cfe/trunk/include/clang/Basic/Diagnostic.h Thu Mar 6 07:23:30 2014 > > @@ -1015,7 +1015,8 @@ inline const DiagnosticBuilder &operator > > return DB; > > } > > > > -inline const DiagnosticBuilder &operator<<(const DiagnosticBuilder > &DB,bool I) { > > +inline const DiagnosticBuilder &operator<<(const DiagnosticBuilder &DB, > > + bool I) { > > DB.AddTaggedVal(I, DiagnosticsEngine::ak_sint); > > return DB; > > } > > @@ -1052,7 +1053,7 @@ operator<<(const DiagnosticBuilder &DB, > > DiagnosticsEngine::ak_declcontext); > > return DB; > > } > > - > > + > > inline const DiagnosticBuilder &operator<<(const DiagnosticBuilder &DB, > > const SourceRange &R) { > > DB.AddSourceRange(CharSourceRange::getTokenRange(R)); > > @@ -1060,11 +1061,18 @@ inline const DiagnosticBuilder &operator > > } > > > > inline const DiagnosticBuilder &operator<<(const DiagnosticBuilder &DB, > > + ArrayRef<SourceRange> > Ranges) { > > + for (const SourceRange &R: Ranges) > > + DB.AddSourceRange(CharSourceRange::getTokenRange(R)); > > + return DB; > > +} > > + > > +inline const DiagnosticBuilder &operator<<(const DiagnosticBuilder &DB, > > const CharSourceRange &R) { > > DB.AddSourceRange(R); > > return DB; > > } > > - > > + > > inline const DiagnosticBuilder &operator<<(const DiagnosticBuilder &DB, > > const FixItHint &Hint) { > > if (!Hint.isNull()) > > @@ -1073,7 +1081,7 @@ inline const DiagnosticBuilder &operator > > } > > > > inline DiagnosticBuilder DiagnosticsEngine::Report(SourceLocation Loc, > > - unsigned DiagID){ > > + unsigned DiagID) { > > assert(CurDiagID == ~0U && "Multiple diagnostics in flight at once!"); > > CurDiagLoc = Loc; > > CurDiagID = DiagID; > > > > Modified: cfe/trunk/lib/StaticAnalyzer/Frontend/AnalysisConsumer.cpp > > URL: > http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/StaticAnalyzer/Frontend/AnalysisConsumer.cpp?rev=203117&r1=203116&r2=203117&view=diff > > > ============================================================================== > > --- cfe/trunk/lib/StaticAnalyzer/Frontend/AnalysisConsumer.cpp (original) > > +++ cfe/trunk/lib/StaticAnalyzer/Frontend/AnalysisConsumer.cpp Thu Mar > 6 07:23:30 2014 > > @@ -103,14 +103,6 @@ public: > > IncludePath = true; > > } > > > > - const DiagnosticBuilder &addRanges(const DiagnosticBuilder &DB, > > - ArrayRef<SourceRange> Ranges) { > > - for (ArrayRef<SourceRange>::iterator I = Ranges.begin(), E = > Ranges.end(); > > - I != E; ++I) > > - DB << *I; > > - return DB; > > - } > > - > > void FlushDiagnosticsImpl(std::vector<const PathDiagnostic *> &Diags, > > FilesMade *filesMade) { > > unsigned WarnID = Diag.getCustomDiagID(DiagnosticsEngine::Warning, > "%0"); > > @@ -120,8 +112,8 @@ public: > > E = Diags.end(); I != E; ++I) { > > const PathDiagnostic *PD = *I; > > SourceLocation WarnLoc = PD->getLocation().asLocation(); > > - addRanges(Diag.Report(WarnLoc, WarnID) << > PD->getShortDescription(), > > - PD->path.back()->getRanges()); > > + Diag.Report(WarnLoc, WarnID) << PD->getShortDescription() > > + << PD->path.back()->getRanges(); > > > > if (!IncludePath) > > continue; > > @@ -131,8 +123,8 @@ public: > > PE = FlatPath.end(); > > PI != PE; ++PI) { > > SourceLocation NoteLoc = (*PI)->getLocation().asLocation(); > > - addRanges(Diag.Report(NoteLoc, NoteID) << (*PI)->getString(), > > - (*PI)->getRanges()); > > + Diag.Report(NoteLoc, NoteID) << (*PI)->getString() > > + << (*PI)->getRanges(); > > } > > } > > } > > > > > > _______________________________________________ > > cfe-commits mailing list > > [email protected] > > http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits >
_______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
