r283540 - [analyzer] Re-apply r283092, attempt no.3, in small chunks this time.

Galina Kistanova via cfe-commits cfe-commits at lists.llvm.org
Mon Oct 10 11:36:26 PDT 2016


Hi Artem,

This revision broke one our our builders:
http://lab.llvm.org:8011/builders/clang-x86_64-linux-abi-test/builds/21910

Please have a look at it.

Thanks

Galina


On Fri, Oct 7, 2016 at 4:26 AM, Artem Dergachev via cfe-commits <
cfe-commits at lists.llvm.org> wrote:

> Author: dergachev
> Date: Fri Oct  7 06:26:15 2016
> New Revision: 283540
>
> URL: http://llvm.org/viewvc/llvm-project?rev=283540&view=rev
> Log:
> [analyzer] Re-apply r283092, attempt no.3, in small chunks this time.
>
>
> Modified:
>     cfe/trunk/include/clang/StaticAnalyzer/Core/BugReporter/BugReporter.h
>
> Modified: cfe/trunk/include/clang/StaticAnalyzer/Core/
> BugReporter/BugReporter.h
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/
> clang/StaticAnalyzer/Core/BugReporter/BugReporter.h?rev=
> 283540&r1=283539&r2=283540&view=diff
> ============================================================
> ==================
> --- cfe/trunk/include/clang/StaticAnalyzer/Core/BugReporter/BugReporter.h
> (original)
> +++ cfe/trunk/include/clang/StaticAnalyzer/Core/BugReporter/BugReporter.h
> Fri Oct  7 06:26:15 2016
> @@ -66,6 +66,7 @@ public:
>    typedef SmallVector<std::unique_ptr<BugReporterVisitor>, 8>
> VisitorList;
>    typedef VisitorList::iterator visitor_iterator;
>    typedef SmallVector<StringRef, 2> ExtraTextList;
> +  typedef SmallVector<const PathDiagnosticNotePiece *, 4> NoteList;
>
>  protected:
>    friend class BugReporter;
> @@ -82,7 +83,8 @@ protected:
>    const ExplodedNode *ErrorNode;
>    SmallVector<SourceRange, 4> Ranges;
>    ExtraTextList ExtraText;
> -
> +  NoteList Notes;
> +
>    typedef llvm::DenseSet<SymbolRef> Symbols;
>    typedef llvm::DenseSet<const MemRegion *> Regions;
>
> @@ -177,6 +179,18 @@ public:
>    const BugType& getBugType() const { return BT; }
>    BugType& getBugType() { return BT; }
>
> +  /// \brief True when the report has an execution path associated with
> it.
> +  ///
> +  /// A report is said to be path-sensitive if it was thrown against a
> +  /// particular exploded node in the path-sensitive analysis graph.
> +  /// Path-sensitive reports have their intermediate path diagnostics
> +  /// auto-generated, perhaps with the help of checker-defined visitors,
> +  /// and may contain extra notes.
> +  /// Path-insensitive reports consist only of a single warning message
> +  /// in a specific location, and perhaps extra notes.
> +  /// Path-sensitive checkers are allowed to throw path-insensitive
> reports.
> +  bool isPathSensitive() const { return ErrorNode != nullptr; }
> +
>    const ExplodedNode *getErrorNode() const { return ErrorNode; }
>
>    StringRef getDescription() const { return Description; }
> @@ -245,7 +259,26 @@ public:
>    void setDeclWithIssue(const Decl *declWithIssue) {
>      DeclWithIssue = declWithIssue;
>    }
> -
> +
> +  /// Add new item to the list of additional notes that need to be
> attached to
> +  /// this path-insensitive report. If you want to add extra notes to a
> +  /// path-sensitive report, you need to use a BugReporterVisitor because
> it
> +  /// allows you to specify where exactly in the auto-generated path
> diagnostic
> +  /// the extra note should appear.
> +  void addNote(StringRef Msg, const PathDiagnosticLocation &Pos,
> +                    ArrayRef<SourceRange> Ranges = {}) {
> +    auto *P = new PathDiagnosticNotePiece(Pos, Msg);
> +
> +    for (const auto &R : Ranges)
> +      P->addRange(R);
> +
> +    Notes.push_back(P);
> +  }
> +
> +  virtual const NoteList &getNotes() {
> +    return Notes;
> +  }
> +
>    /// \brief This allows for addition of meta data to the diagnostic.
>    ///
>    /// Currently, only the HTMLDiagnosticClient knows how to display it.
>
>
> _______________________________________________
> cfe-commits mailing list
> cfe-commits at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20161010/581df6b1/attachment.html>


More information about the cfe-commits mailing list