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

Artem Dergachev via cfe-commits cfe-commits at lists.llvm.org
Mon Oct 10 11:48:06 PDT 2016


Hi Galina,

Hmm, this sounds strange to me, because this commit has been instantly 
reverted three days ago (replaced with correct code later), and current 
errors on this buildbot do not seem to be related.

On 10/10/16 9:36 PM, Galina Kistanova wrote:
> 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 <mailto: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
>     <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
>     <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 <mailto:cfe-commits at lists.llvm.org>
>     http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
>     <http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits>
>
>



More information about the cfe-commits mailing list