r203117 - Added an inserter for ArrayRef<SourceRange>.

Alexander Kornienko alexfh at google.com
Thu Mar 6 09:19:41 PST 2014


On Thu, Mar 6, 2014 at 6:14 PM, David Blaikie <dblaikie at gmail.com> wrote:

> On Thu, Mar 6, 2014 at 5:23 AM, Alexander Kornienko <alexfh at google.com>
> 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
> > cfe-commits at cs.uiuc.edu
> > http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20140306/911f6a04/attachment.html>


More information about the cfe-commits mailing list