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