<html>
  <head>
    <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <p>Oh well, will make a few more blind guesses then, with a closer
      look at this bot this time. Thanks for helping/reverting!<br>
    </p>
    <br>
    <div class="moz-cite-prefix">04/10/2016 01:12, Vitaly Buka пишет:<br>
    </div>
    <blockquote
cite="mid:CAPjTjwvAKVOGT50k6FRWEzbUJKjv7T36JKbevarb4eWviLO0xQ@mail.gmail.com"
      type="cite">
      <div dir="ltr">
        <div>Can't reproduce on my Windows.</div>
      </div>
      <br>
      <div class="gmail_quote">
        <div dir="ltr">On Mon, Oct 3, 2016 at 1:31 PM Artem Dergachev
          <<a moz-do-not-send="true"
            href="mailto:noqnoqneo@gmail.com">noqnoqneo@gmail.com</a>>
          wrote:<br>
        </div>
        <blockquote class="gmail_quote" style="margin:0 0 0
          .8ex;border-left:1px #ccc solid;padding-left:1ex">
          <div bgcolor="#FFFFFF" text="#000000" class="gmail_msg">
            <p class="gmail_msg">I also made a quick blind guess at
              r283141
              (<a moz-do-not-send="true"
                class="m_-2630513323378653476moz-txt-link-freetext
                gmail_msg"
href="http://lists.llvm.org/pipermail/cfe-commits/Week-of-Mon-20161003/172390.html"
                target="_blank">http://lists.llvm.org/pipermail/cfe-commits/Week-of-Mon-20161003/172390.html</a>)</p>
            <p class="gmail_msg">Thanks a lot for trying to help, sorry
              for causing problems.<br class="gmail_msg">
            </p>
            <br class="gmail_msg">
            <div class="m_-2630513323378653476moz-cite-prefix gmail_msg">03/10/2016
              23:26, Vitaly Buka пишет:<br class="gmail_msg">
            </div>
          </div>
          <div bgcolor="#FFFFFF" text="#000000" class="gmail_msg">
            <blockquote type="cite" class="gmail_msg">
              <div dir="ltr" class="gmail_msg">I will look into this and
                get back to you. </div>
              <br class="gmail_msg">
              <div class="gmail_quote gmail_msg">
                <div dir="ltr" class="gmail_msg">On Mon, Oct 3, 2016 at
                  12:12 PM Artem Dergachev <<a moz-do-not-send="true"
                    href="mailto:noqnoqneo@gmail.com" class="gmail_msg"
                    target="_blank">noqnoqneo@gmail.com</a>> wrote:<br
                    class="gmail_msg">
                </div>
                <blockquote class="gmail_quote gmail_msg"
                  style="margin:0 0 0 .8ex;border-left:1px #ccc
                  solid;padding-left:1ex">
                  <div bgcolor="#FFFFFF" text="#000000"
                    class="gmail_msg"> > fatal error C1001: An
                    internal error has occurred in the compiler.<br
                      class="gmail_msg">
                    <br class="gmail_msg">
                    Ouch. So i managed to *crash* the microsoft compiler
                    with my code?<br class="gmail_msg">
                    <br class="gmail_msg">
                    Could you please somehow have a look if this is
                    reproducible? If it's reproducible or
                    hard-to-check-if-reproducible then i'd revert.<br
                      class="gmail_msg">
                    <br class="gmail_msg">
                    I don't think i can debug this, as i don't have
                    windows, and i have no guesses from looking at the
                    code.<br class="gmail_msg">
                    <br class="gmail_msg">
                    Also, should i have received an email for this
                    failure? Cause i haven't received an email for this
                    failure. Hope there aren't more failures.<br
                      class="gmail_msg">
                    <br class="gmail_msg">
                    <br class="gmail_msg">
                    <br class="gmail_msg">
                    <div
                      class="m_-2630513323378653476m_-1065106170221421501moz-cite-prefix
                      gmail_msg">03/10/2016 21:46, Vitaly Buka via
                      cfe-commits пишет:<br class="gmail_msg">
                    </div>
                  </div>
                  <div bgcolor="#FFFFFF" text="#000000"
                    class="gmail_msg">
                    <blockquote type="cite" class="gmail_msg">
                      <div dir="ltr" class="gmail_msg">This patch breaks
                        Windows: <a moz-do-not-send="true"
                          href="http://lab.llvm.org:8011/builders/sanitizer-windows/builds/29769/"
                          class="gmail_msg" target="_blank">http://lab.llvm.org:8011/builders/sanitizer-windows/builds/29769/</a></div>
                      <br class="gmail_msg">
                      <div class="gmail_quote gmail_msg">
                        <div dir="ltr" class="gmail_msg">On Mon, Oct 3,
                          2016 at 1:07 AM Artem Dergachev via
                          cfe-commits <<a moz-do-not-send="true"
                            href="mailto:cfe-commits@lists.llvm.org"
                            class="gmail_msg" target="_blank">cfe-commits@lists.llvm.org</a>>
                          wrote:<br class="gmail_msg">
                        </div>
                        <blockquote class="gmail_quote gmail_msg"
                          style="margin:0 0 0 .8ex;border-left:1px #ccc
                          solid;padding-left:1ex">Author: dergachev<br
                            class="gmail_msg">
                          Date: Mon Oct  3 02:58:26 2016<br
                            class="gmail_msg">
                          New Revision: 283092<br class="gmail_msg">
                          <br class="gmail_msg">
                          URL: <a moz-do-not-send="true"
                            href="http://llvm.org/viewvc/llvm-project?rev=283092&view=rev"
                            rel="noreferrer" class="gmail_msg"
                            target="_blank">http://llvm.org/viewvc/llvm-project?rev=283092&view=rev</a><br
                            class="gmail_msg">
                          Log:<br class="gmail_msg">
                          [analyzer] Extend bug reports with extra notes<br
                            class="gmail_msg">
                          <br class="gmail_msg">
                          These diagnostics are separate from the
                          path-sensitive engine's path notes,<br
                            class="gmail_msg">
                          and can be added manually on top of
                          path-sensitive or path-insensitive reports.<br
                            class="gmail_msg">
                          <br class="gmail_msg">
                          The new note diagnostics would appear as
                          note:-diagnostic on console and<br
                            class="gmail_msg">
                          as blue bubbles in scan-build. In plist files
                          they currently do not appear,<br
                            class="gmail_msg">
                          because format needs to be discussed with
                          plist file users.<br class="gmail_msg">
                          <br class="gmail_msg">
                          The analyzer option "-analyzer-config
                          notes-as-events=true" would convert<br
                            class="gmail_msg">
                          notes to normal path notes, and put them at
                          the beginning of the path.<br
                            class="gmail_msg">
                          This is a temporary hack to show the new notes
                          in plist files.<br class="gmail_msg">
                          <br class="gmail_msg">
                          A few checkers would be updated in subsequent
                          commits,<br class="gmail_msg">
                          including tests for this new feature.<br
                            class="gmail_msg">
                          <br class="gmail_msg">
                          Differential Revision: <a
                            moz-do-not-send="true"
                            href="https://reviews.llvm.org/D24278"
                            rel="noreferrer" class="gmail_msg"
                            target="_blank">https://reviews.llvm.org/D24278</a><br
                            class="gmail_msg">
                          <br class="gmail_msg">
                          Modified:<br class="gmail_msg">
                             
                          cfe/trunk/include/clang/StaticAnalyzer/Core/AnalyzerOptions.h<br
                            class="gmail_msg">
                             
                          cfe/trunk/include/clang/StaticAnalyzer/Core/BugReporter/BugReporter.h<br
                            class="gmail_msg">
                             
                          cfe/trunk/include/clang/StaticAnalyzer/Core/BugReporter/PathDiagnostic.h<br
                            class="gmail_msg">
                              cfe/trunk/lib/Rewrite/HTMLRewrite.cpp<br
                            class="gmail_msg">
                             
                          cfe/trunk/lib/StaticAnalyzer/Core/AnalyzerOptions.cpp<br
                            class="gmail_msg">
                             
                          cfe/trunk/lib/StaticAnalyzer/Core/BugReporter.cpp<br
                            class="gmail_msg">
                             
                          cfe/trunk/lib/StaticAnalyzer/Core/HTMLDiagnostics.cpp<br
                            class="gmail_msg">
                             
                          cfe/trunk/lib/StaticAnalyzer/Core/PathDiagnostic.cpp<br
                            class="gmail_msg">
                             
                          cfe/trunk/lib/StaticAnalyzer/Core/PlistDiagnostics.cpp<br
                            class="gmail_msg">
                             
                          cfe/trunk/lib/StaticAnalyzer/Frontend/AnalysisConsumer.cpp<br
                            class="gmail_msg">
                          <br class="gmail_msg">
                          Modified:
                          cfe/trunk/include/clang/StaticAnalyzer/Core/AnalyzerOptions.h<br
                            class="gmail_msg">
                          URL: <a moz-do-not-send="true"
href="http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/StaticAnalyzer/Core/AnalyzerOptions.h?rev=283092&r1=283091&r2=283092&view=diff"
                            rel="noreferrer" class="gmail_msg"
                            target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/StaticAnalyzer/Core/AnalyzerOptions.h?rev=283092&r1=283091&r2=283092&view=diff</a><br
                            class="gmail_msg">
==============================================================================<br
                            class="gmail_msg">
                          ---
                          cfe/trunk/include/clang/StaticAnalyzer/Core/AnalyzerOptions.h
                          (original)<br class="gmail_msg">
                          +++
                          cfe/trunk/include/clang/StaticAnalyzer/Core/AnalyzerOptions.h
                          Mon Oct  3 02:58:26 2016<br class="gmail_msg">
                          @@ -266,6 +266,9 @@ private:<br
                            class="gmail_msg">
                             /// \sa shouldWidenLoops<br
                            class="gmail_msg">
                             Optional<bool> WidenLoops;<br
                            class="gmail_msg">
                          <br class="gmail_msg">
                          +  /// \sa shouldDisplayNotesAsEvents<br
                            class="gmail_msg">
                          +  Optional<bool> DisplayNotesAsEvents;<br
                            class="gmail_msg">
                          +<br class="gmail_msg">
                             /// A helper function that retrieves option
                          for a given full-qualified<br
                            class="gmail_msg">
                             /// checker name.<br class="gmail_msg">
                             /// Options for checkers can be specified
                          via 'analyzer-config' command-line<br
                            class="gmail_msg">
                          @@ -534,6 +537,14 @@ public:<br
                            class="gmail_msg">
                             /// This is controlled by the 'widen-loops'
                          config option.<br class="gmail_msg">
                             bool shouldWidenLoops();<br
                            class="gmail_msg">
                          <br class="gmail_msg">
                          +  /// Returns true if the bug reporter should
                          transparently treat extra note<br
                            class="gmail_msg">
                          +  /// diagnostic pieces as event diagnostic
                          pieces. Useful when the diagnostic<br
                            class="gmail_msg">
                          +  /// consumer doesn't support the extra note
                          pieces.<br class="gmail_msg">
                          +  ///<br class="gmail_msg">
                          +  /// This is controlled by the
                          'notes-as-events' option, which defaults<br
                            class="gmail_msg">
                          +  /// to false when unset.<br
                            class="gmail_msg">
                          +  bool shouldDisplayNotesAsEvents();<br
                            class="gmail_msg">
                          +<br class="gmail_msg">
                           public:<br class="gmail_msg">
                             AnalyzerOptions() :<br class="gmail_msg">
                               AnalysisStoreOpt(RegionStoreModel),<br
                            class="gmail_msg">
                          <br class="gmail_msg">
                          Modified:
                          cfe/trunk/include/clang/StaticAnalyzer/Core/BugReporter/BugReporter.h<br
                            class="gmail_msg">
                          URL: <a moz-do-not-send="true"
href="http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/StaticAnalyzer/Core/BugReporter/BugReporter.h?rev=283092&r1=283091&r2=283092&view=diff"
                            rel="noreferrer" class="gmail_msg"
                            target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/StaticAnalyzer/Core/BugReporter/BugReporter.h?rev=283092&r1=283091&r2=283092&view=diff</a><br
                            class="gmail_msg">
==============================================================================<br
                            class="gmail_msg">
                          ---
                          cfe/trunk/include/clang/StaticAnalyzer/Core/BugReporter/BugReporter.h
                          (original)<br class="gmail_msg">
                          +++
                          cfe/trunk/include/clang/StaticAnalyzer/Core/BugReporter/BugReporter.h
                          Mon Oct  3 02:58:26 2016<br class="gmail_msg">
                          @@ -66,6 +66,8 @@ public:<br class="gmail_msg">
                             typedef
                          SmallVector<std::unique_ptr<BugReporterVisitor>,
                          8> VisitorList;<br class="gmail_msg">
                             typedef VisitorList::iterator
                          visitor_iterator;<br class="gmail_msg">
                             typedef SmallVector<StringRef, 2>
                          ExtraTextList;<br class="gmail_msg">
                          +  typedef
                          SmallVector<llvm::IntrusiveRefCntPtr<PathDiagnosticNotePiece>,
                          4><br class="gmail_msg">
                          +      NoteList;<br class="gmail_msg">
                          <br class="gmail_msg">
                           protected:<br class="gmail_msg">
                             friend class BugReporter;<br
                            class="gmail_msg">
                          @@ -82,7 +84,8 @@ protected:<br
                            class="gmail_msg">
                             const ExplodedNode *ErrorNode;<br
                            class="gmail_msg">
                             SmallVector<SourceRange, 4> Ranges;<br
                            class="gmail_msg">
                             ExtraTextList ExtraText;<br
                            class="gmail_msg">
                          -<br class="gmail_msg">
                          +  NoteList Notes;<br class="gmail_msg">
                          +<br class="gmail_msg">
                             typedef llvm::DenseSet<SymbolRef>
                          Symbols;<br class="gmail_msg">
                             typedef llvm::DenseSet<const MemRegion
                          *> Regions;<br class="gmail_msg">
                          <br class="gmail_msg">
                          @@ -177,6 +180,18 @@ public:<br
                            class="gmail_msg">
                             const BugType& getBugType() const {
                          return BT; }<br class="gmail_msg">
                             BugType& getBugType() { return BT; }<br
                            class="gmail_msg">
                          <br class="gmail_msg">
                          +  /// \brief True when the report has an
                          execution path associated with it.<br
                            class="gmail_msg">
                          +  ///<br class="gmail_msg">
                          +  /// A report is said to be path-sensitive
                          if it was thrown against a<br
                            class="gmail_msg">
                          +  /// particular exploded node in the
                          path-sensitive analysis graph.<br
                            class="gmail_msg">
                          +  /// Path-sensitive reports have their
                          intermediate path diagnostics<br
                            class="gmail_msg">
                          +  /// auto-generated, perhaps with the help
                          of checker-defined visitors,<br
                            class="gmail_msg">
                          +  /// and may contain extra notes.<br
                            class="gmail_msg">
                          +  /// Path-insensitive reports consist only
                          of a single warning message<br
                            class="gmail_msg">
                          +  /// in a specific location, and perhaps
                          extra notes.<br class="gmail_msg">
                          +  /// Path-sensitive checkers are allowed to
                          throw path-insensitive reports.<br
                            class="gmail_msg">
                          +  bool isPathSensitive() const { return
                          ErrorNode != nullptr; }<br class="gmail_msg">
                          +<br class="gmail_msg">
                             const ExplodedNode *getErrorNode() const {
                          return ErrorNode; }<br class="gmail_msg">
                          <br class="gmail_msg">
                             StringRef getDescription() const { return
                          Description; }<br class="gmail_msg">
                          @@ -245,7 +260,27 @@ public:<br
                            class="gmail_msg">
                             void setDeclWithIssue(const Decl
                          *declWithIssue) {<br class="gmail_msg">
                               DeclWithIssue = declWithIssue;<br
                            class="gmail_msg">
                             }<br class="gmail_msg">
                          -<br class="gmail_msg">
                          +<br class="gmail_msg">
                          +  /// Add new item to the list of additional
                          notes that need to be attached to<br
                            class="gmail_msg">
                          +  /// this path-insensitive report. If you
                          want to add extra notes to a<br
                            class="gmail_msg">
                          +  /// path-sensitive report, you need to use
                          a BugReporterVisitor because it<br
                            class="gmail_msg">
                          +  /// allows you to specify where exactly in
                          the auto-generated path diagnostic<br
                            class="gmail_msg">
                          +  /// the extra note should appear.<br
                            class="gmail_msg">
                          +  void addNote(StringRef Msg, const
                          PathDiagnosticLocation &Pos,<br
                            class="gmail_msg">
                          +                   
                          ArrayRef<SourceRange> Ranges = {}) {<br
                            class="gmail_msg">
                          +    PathDiagnosticNotePiece *P =<br
                            class="gmail_msg">
                          +        new PathDiagnosticNotePiece(Pos,
                          Msg);<br class="gmail_msg">
                          +<br class="gmail_msg">
                          +    for (const auto &R : Ranges)<br
                            class="gmail_msg">
                          +      P->addRange(R);<br class="gmail_msg">
                          +<br class="gmail_msg">
                          +    Notes.push_back(P);<br class="gmail_msg">
                          +  }<br class="gmail_msg">
                          +<br class="gmail_msg">
                          +  virtual const NoteList &getNotes() {<br
                            class="gmail_msg">
                          +    return Notes;<br class="gmail_msg">
                          +  }<br class="gmail_msg">
                          +<br class="gmail_msg">
                             /// \brief This allows for addition of meta
                          data to the diagnostic.<br class="gmail_msg">
                             ///<br class="gmail_msg">
                             /// Currently, only the
                          HTMLDiagnosticClient knows how to display it.<br
                            class="gmail_msg">
                          <br class="gmail_msg">
                          Modified:
                          cfe/trunk/include/clang/StaticAnalyzer/Core/BugReporter/PathDiagnostic.h<br
                            class="gmail_msg">
                          URL: <a moz-do-not-send="true"
href="http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/StaticAnalyzer/Core/BugReporter/PathDiagnostic.h?rev=283092&r1=283091&r2=283092&view=diff"
                            rel="noreferrer" class="gmail_msg"
                            target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/StaticAnalyzer/Core/BugReporter/PathDiagnostic.h?rev=283092&r1=283091&r2=283092&view=diff</a><br
                            class="gmail_msg">
==============================================================================<br
                            class="gmail_msg">
                          ---
                          cfe/trunk/include/clang/StaticAnalyzer/Core/BugReporter/PathDiagnostic.h
                          (original)<br class="gmail_msg">
                          +++
                          cfe/trunk/include/clang/StaticAnalyzer/Core/BugReporter/PathDiagnostic.h
                          Mon Oct  3 02:58:26 2016<br class="gmail_msg">
                          @@ -336,7 +336,7 @@ public:<br
                            class="gmail_msg">
                          <br class="gmail_msg">
                           class PathDiagnosticPiece : public
                          RefCountedBaseVPTR {<br class="gmail_msg">
                           public:<br class="gmail_msg">
                          -  enum Kind { ControlFlow, Event, Macro, Call
                          };<br class="gmail_msg">
                          +  enum Kind { ControlFlow, Event, Macro,
                          Call, Note };<br class="gmail_msg">
                             enum DisplayHint { Above, Below };<br
                            class="gmail_msg">
                          <br class="gmail_msg">
                           private:<br class="gmail_msg">
                          @@ -452,7 +452,8 @@ public:<br
                            class="gmail_msg">
                             void Profile(llvm::FoldingSetNodeID
                          &ID) const override;<br class="gmail_msg">
                          <br class="gmail_msg">
                             static bool classof(const
                          PathDiagnosticPiece *P) {<br class="gmail_msg">
                          -    return P->getKind() == Event ||
                          P->getKind() == Macro;<br class="gmail_msg">
                          +    return P->getKind() == Event ||
                          P->getKind() == Macro ||<br
                            class="gmail_msg">
                          +           P->getKind() == Note;<br
                            class="gmail_msg">
                             }<br class="gmail_msg">
                           };<br class="gmail_msg">
                          <br class="gmail_msg">
                          @@ -706,6 +707,23 @@ public:<br
                            class="gmail_msg">
                             }<br class="gmail_msg">
                          <br class="gmail_msg">
                             void dump() const override;<br
                            class="gmail_msg">
                          +<br class="gmail_msg">
                          +  void Profile(llvm::FoldingSetNodeID
                          &ID) const override;<br class="gmail_msg">
                          +};<br class="gmail_msg">
                          +<br class="gmail_msg">
                          +class PathDiagnosticNotePiece: public
                          PathDiagnosticSpotPiece {<br class="gmail_msg">
                          +public:<br class="gmail_msg">
                          +  PathDiagnosticNotePiece(const
                          PathDiagnosticLocation &Pos, StringRef S,<br
                            class="gmail_msg">
                          +                               bool
                          AddPosRange = true)<br class="gmail_msg">
                          +      : PathDiagnosticSpotPiece(Pos, S, Note,
                          AddPosRange) {}<br class="gmail_msg">
                          +<br class="gmail_msg">
                          +  ~PathDiagnosticNotePiece() override;<br
                            class="gmail_msg">
                          +<br class="gmail_msg">
                          +  static inline bool classof(const
                          PathDiagnosticPiece *P) {<br class="gmail_msg">
                          +    return P->getKind() == Note;<br
                            class="gmail_msg">
                          +  }<br class="gmail_msg">
                          +<br class="gmail_msg">
                          +  void dump() const override;<br
                            class="gmail_msg">
                          <br class="gmail_msg">
                             void Profile(llvm::FoldingSetNodeID
                          &ID) const override;<br class="gmail_msg">
                           };<br class="gmail_msg">
                          <br class="gmail_msg">
                          Modified:
                          cfe/trunk/lib/Rewrite/HTMLRewrite.cpp<br
                            class="gmail_msg">
                          URL: <a moz-do-not-send="true"
href="http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Rewrite/HTMLRewrite.cpp?rev=283092&r1=283091&r2=283092&view=diff"
                            rel="noreferrer" class="gmail_msg"
                            target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Rewrite/HTMLRewrite.cpp?rev=283092&r1=283091&r2=283092&view=diff</a><br
                            class="gmail_msg">
==============================================================================<br
                            class="gmail_msg">
                          --- cfe/trunk/lib/Rewrite/HTMLRewrite.cpp
                          (original)<br class="gmail_msg">
                          +++ cfe/trunk/lib/Rewrite/HTMLRewrite.cpp Mon
                          Oct  3 02:58:26 2016<br class="gmail_msg">
                          @@ -324,6 +324,7 @@ void
                          html::AddHeaderFooterInternalBuilti<br
                            class="gmail_msg">
                                 " .msgT { padding:0x; spacing:0x }\n"<br
                            class="gmail_msg">
                                 " .msgEvent { background-color:#fff8b4;
                          color:#000000 }\n"<br class="gmail_msg">
                                 " .msgControl {
                          background-color:#bbbbbb; color:#000000 }\n"<br
                            class="gmail_msg">
                          +      " .msgNote { background-color:#ddeeff;
                          color:#000000 }\n"<br class="gmail_msg">
                                 " .mrange { background-color:#dfddf3
                          }\n"<br class="gmail_msg">
                                 " .mrange { border-bottom:1px solid
                          #6F9DBE }\n"<br class="gmail_msg">
                                 " .PathIndex { font-weight: bold;
                          padding:0px 5px; "<br class="gmail_msg">
                          @@ -343,8 +344,12 @@ void
                          html::AddHeaderFooterInternalBuilti<br
                            class="gmail_msg">
                                 "   border-collapse: collapse;
                          border-spacing: 0px;\n"<br class="gmail_msg">
                                 " }\n"<br class="gmail_msg">
                                 " td.rowname {\n"<br class="gmail_msg">
                          -      "   text-align:right; font-weight:bold;
                          color:#444444;\n"<br class="gmail_msg">
                          -      "   padding-right:2ex; }\n"<br
                            class="gmail_msg">
                          +      "   text-align: right;\n"<br
                            class="gmail_msg">
                          +      "   vertical-align: top;\n"<br
                            class="gmail_msg">
                          +      "   font-weight: bold;\n"<br
                            class="gmail_msg">
                          +      "   color:#444444;\n"<br
                            class="gmail_msg">
                          +      "   padding-right:2ex;\n"<br
                            class="gmail_msg">
                          +      " }\n"<br class="gmail_msg">
                               
                           "</style>\n</head>\n<body>";<br
                            class="gmail_msg">
                          <br class="gmail_msg">
                             // Generate header<br class="gmail_msg">
                          <br class="gmail_msg">
                          Modified:
                          cfe/trunk/lib/StaticAnalyzer/Core/AnalyzerOptions.cpp<br
                            class="gmail_msg">
                          URL: <a moz-do-not-send="true"
href="http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/StaticAnalyzer/Core/AnalyzerOptions.cpp?rev=283092&r1=283091&r2=283092&view=diff"
                            rel="noreferrer" class="gmail_msg"
                            target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/StaticAnalyzer/Core/AnalyzerOptions.cpp?rev=283092&r1=283091&r2=283092&view=diff</a><br
                            class="gmail_msg">
==============================================================================<br
                            class="gmail_msg">
                          ---
                          cfe/trunk/lib/StaticAnalyzer/Core/AnalyzerOptions.cpp
                          (original)<br class="gmail_msg">
                          +++
                          cfe/trunk/lib/StaticAnalyzer/Core/AnalyzerOptions.cpp
                          Mon Oct  3 02:58:26 2016<br class="gmail_msg">
                          @@ -344,3 +344,10 @@ bool
                          AnalyzerOptions::shouldWidenLoops()<br
                            class="gmail_msg">
                               WidenLoops =
                          getBooleanOption("widen-loops",
                          /*Default=*/false);<br class="gmail_msg">
                             return WidenLoops.getValue();<br
                            class="gmail_msg">
                           }<br class="gmail_msg">
                          +<br class="gmail_msg">
                          +bool
                          AnalyzerOptions::shouldDisplayNotesAsEvents()
                          {<br class="gmail_msg">
                          +  if (!DisplayNotesAsEvents.hasValue())<br
                            class="gmail_msg">
                          +    DisplayNotesAsEvents =<br
                            class="gmail_msg">
                          +        getBooleanOption("notes-as-events",
                          /*Default=*/false);<br class="gmail_msg">
                          +  return DisplayNotesAsEvents.getValue();<br
                            class="gmail_msg">
                          +}<br class="gmail_msg">
                          <br class="gmail_msg">
                          Modified:
                          cfe/trunk/lib/StaticAnalyzer/Core/BugReporter.cpp<br
                            class="gmail_msg">
                          URL: <a moz-do-not-send="true"
href="http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/StaticAnalyzer/Core/BugReporter.cpp?rev=283092&r1=283091&r2=283092&view=diff"
                            rel="noreferrer" class="gmail_msg"
                            target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/StaticAnalyzer/Core/BugReporter.cpp?rev=283092&r1=283091&r2=283092&view=diff</a><br
                            class="gmail_msg">
==============================================================================<br
                            class="gmail_msg">
                          ---
                          cfe/trunk/lib/StaticAnalyzer/Core/BugReporter.cpp
                          (original)<br class="gmail_msg">
                          +++
                          cfe/trunk/lib/StaticAnalyzer/Core/BugReporter.cpp
                          Mon Oct  3 02:58:26 2016<br class="gmail_msg">
                          @@ -112,15 +112,15 @@ static void
                          removeRedundantMsgs(PathPiec<br
                            class="gmail_msg">
                               path.pop_front();<br class="gmail_msg">
                          <br class="gmail_msg">
                               switch (piece->getKind()) {<br
                            class="gmail_msg">
                          -      case
                          clang::ento::PathDiagnosticPiece::Call:<br
                            class="gmail_msg">
                          +      case PathDiagnosticPiece::Call:<br
                            class="gmail_msg">
                                 
 removeRedundantMsgs(cast<PathDiagnosticCallPiece>(piece)->path);<br
                            class="gmail_msg">
                                   break;<br class="gmail_msg">
                          -      case
                          clang::ento::PathDiagnosticPiece::Macro:<br
                            class="gmail_msg">
                          +      case PathDiagnosticPiece::Macro:<br
                            class="gmail_msg">
                                 
 removeRedundantMsgs(cast<PathDiagnosticMacroPiece>(piece)->subPieces);<br
                            class="gmail_msg">
                                   break;<br class="gmail_msg">
                          -      case
                          clang::ento::PathDiagnosticPiece::ControlFlow:<br
                            class="gmail_msg">
                          +      case PathDiagnosticPiece::ControlFlow:<br
                            class="gmail_msg">
                                   break;<br class="gmail_msg">
                          -      case
                          clang::ento::PathDiagnosticPiece::Event: {<br
                            class="gmail_msg">
                          +      case PathDiagnosticPiece::Event: {<br
                            class="gmail_msg">
                                   if (i == N-1)<br class="gmail_msg">
                                     break;<br class="gmail_msg">
                          <br class="gmail_msg">
                          @@ -140,6 +140,8 @@ static void
                          removeRedundantMsgs(PathPiec<br
                            class="gmail_msg">
                                   }<br class="gmail_msg">
                                   break;<br class="gmail_msg">
                                 }<br class="gmail_msg">
                          +      case PathDiagnosticPiece::Note:<br
                            class="gmail_msg">
                          +        break;<br class="gmail_msg">
                               }<br class="gmail_msg">
                               path.push_back(piece);<br
                            class="gmail_msg">
                             }<br class="gmail_msg">
                          @@ -197,6 +199,9 @@ static bool
                          removeUnneededCalls(PathPiec<br
                            class="gmail_msg">
                                 }<br class="gmail_msg">
                                 case PathDiagnosticPiece::ControlFlow:<br
                            class="gmail_msg">
                                   break;<br class="gmail_msg">
                          +<br class="gmail_msg">
                          +      case PathDiagnosticPiece::Note:<br
                            class="gmail_msg">
                          +        break;<br class="gmail_msg">
                               }<br class="gmail_msg">
                          <br class="gmail_msg">
                               pieces.push_back(piece);<br
                            class="gmail_msg">
                          @@ -3403,25 +3408,28 @@ void
                          BugReporter::FlushReport(BugReport<br
                            class="gmail_msg">
                               
                           exampleReport->getUniqueingLocation(),<br
                            class="gmail_msg">
                                 exampleReport->getUniqueingDecl()));<br
                            class="gmail_msg">
                          <br class="gmail_msg">
                          -  MaxBugClassSize =
                          std::max(bugReports.size(),<br
                            class="gmail_msg">
                          -                           
                           static_cast<size_t>(MaxBugClassSize));<br
                            class="gmail_msg">
                          +  if (exampleReport->isPathSensitive()) {<br
                            class="gmail_msg">
                          +    // Generate the full path diagnostic,
                          using the generation scheme<br
                            class="gmail_msg">
                          +    // specified by the
                          PathDiagnosticConsumer. Note that we have to
                          generate<br class="gmail_msg">
                          +    // path diagnostics even for consumers
                          which do not support paths, because<br
                            class="gmail_msg">
                          +    // the BugReporterVisitors may mark this
                          bug as a false positive.<br class="gmail_msg">
                          +    assert(!bugReports.empty());<br
                            class="gmail_msg">
                          +<br class="gmail_msg">
                          +    MaxBugClassSize =<br class="gmail_msg">
                          +        std::max(bugReports.size(),
                          static_cast<size_t>(MaxBugClassSize));<br
                            class="gmail_msg">
                          <br class="gmail_msg">
                          -  // Generate the full path diagnostic, using
                          the generation scheme<br class="gmail_msg">
                          -  // specified by the PathDiagnosticConsumer.
                          Note that we have to generate<br
                            class="gmail_msg">
                          -  // path diagnostics even for consumers
                          which do not support paths, because<br
                            class="gmail_msg">
                          -  // the BugReporterVisitors may mark this
                          bug as a false positive.<br class="gmail_msg">
                          -  if (!bugReports.empty())<br
                            class="gmail_msg">
                               if (!generatePathDiagnostic(*D.get(), PD,
                          bugReports))<br class="gmail_msg">
                                 return;<br class="gmail_msg">
                          <br class="gmail_msg">
                          -  MaxValidBugClassSize =
                          std::max(bugReports.size(),<br
                            class="gmail_msg">
                          -                                 
                          static_cast<size_t>(MaxValidBugClassSize));<br
                            class="gmail_msg">
                          +    MaxValidBugClassSize =<br
                            class="gmail_msg">
                          +        std::max(bugReports.size(),
                          static_cast<size_t>(MaxValidBugClassSize));<br
                            class="gmail_msg">
                          <br class="gmail_msg">
                          -  // Examine the report and see if the last
                          piece is in a header. Reset the<br
                            class="gmail_msg">
                          -  // report location to the last piece in the
                          main source file.<br class="gmail_msg">
                          -  AnalyzerOptions& Opts =
                          getAnalyzerOptions();<br class="gmail_msg">
                          -  if
                          (Opts.shouldReportIssuesInMainSourceFile()
                          && !Opts.AnalyzeAll)<br
                            class="gmail_msg">
                          -   
                          D->resetDiagnosticLocationToMainFile();<br
                            class="gmail_msg">
                          +    // Examine the report and see if the last
                          piece is in a header. Reset the<br
                            class="gmail_msg">
                          +    // report location to the last piece in
                          the main source file.<br class="gmail_msg">
                          +    AnalyzerOptions &Opts =
                          getAnalyzerOptions();<br class="gmail_msg">
                          +    if
                          (Opts.shouldReportIssuesInMainSourceFile()
                          && !Opts.AnalyzeAll)<br
                            class="gmail_msg">
                          +     
                          D->resetDiagnosticLocationToMainFile();<br
                            class="gmail_msg">
                          +  }<br class="gmail_msg">
                          <br class="gmail_msg">
                             // If the path is empty, generate a single
                          step path with the location<br
                            class="gmail_msg">
                             // of the issue.<br class="gmail_msg">
                          @@ -3434,6 +3442,27 @@ void
                          BugReporter::FlushReport(BugReport<br
                            class="gmail_msg">
                               D->setEndOfPath(std::move(piece));<br
                            class="gmail_msg">
                             }<br class="gmail_msg">
                          <br class="gmail_msg">
                          +  PathPieces &Pieces =
                          D->getMutablePieces();<br class="gmail_msg">
                          +  if
                          (getAnalyzerOptions().shouldDisplayNotesAsEvents())
                          {<br class="gmail_msg">
                          +    // For path diagnostic consumers that
                          don't support extra notes,<br
                            class="gmail_msg">
                          +    // we may optionally convert those to
                          path notes.<br class="gmail_msg">
                          +    for (auto I =
                          exampleReport->getNotes().rbegin(),<br
                            class="gmail_msg">
                          +              E =
                          exampleReport->getNotes().rend(); I != E;
                          ++I) {<br class="gmail_msg">
                          +      PathDiagnosticNotePiece *Piece =
                          I->get();<br class="gmail_msg">
                          +      PathDiagnosticEventPiece
                          *ConvertedPiece =<br class="gmail_msg">
                          +          new
                          PathDiagnosticEventPiece(Piece->getLocation(),<br
                            class="gmail_msg">
                          +                                     
                           Piece->getString());<br class="gmail_msg">
                          +      for (const auto &R:
                          Piece->getRanges())<br class="gmail_msg">
                          +        ConvertedPiece->addRange(R);<br
                            class="gmail_msg">
                          +<br class="gmail_msg">
                          +      Pieces.push_front(ConvertedPiece);<br
                            class="gmail_msg">
                          +    }<br class="gmail_msg">
                          +  } else {<br class="gmail_msg">
                          +    for (auto I =
                          exampleReport->getNotes().rbegin(),<br
                            class="gmail_msg">
                          +              E =
                          exampleReport->getNotes().rend(); I != E;
                          ++I)<br class="gmail_msg">
                          +      Pieces.push_front(*I);<br
                            class="gmail_msg">
                          +  }<br class="gmail_msg">
                          +<br class="gmail_msg">
                             // Get the meta data.<br class="gmail_msg">
                             const BugReport::ExtraTextList &Meta =
                          exampleReport->getExtraText();<br
                            class="gmail_msg">
                             for
                          (BugReport::ExtraTextList::const_iterator i =
                          Meta.begin(),<br class="gmail_msg">
                          @@ -3518,6 +3547,13 @@ LLVM_DUMP_METHOD void
                          PathDiagnosticMacr<br class="gmail_msg">
                             // FIXME: Print which macro is being
                          invoked.<br class="gmail_msg">
                           }<br class="gmail_msg">
                          <br class="gmail_msg">
                          +LLVM_DUMP_METHOD void
                          PathDiagnosticNotePiece::dump() const {<br
                            class="gmail_msg">
                          +  llvm::errs() <<
                          "NOTE\n--------------\n";<br class="gmail_msg">
                          +  llvm::errs() << getString() <<
                          "\n";<br class="gmail_msg">
                          +  llvm::errs() << " ---- at ----\n";<br
                            class="gmail_msg">
                          +  getLocation().dump();<br class="gmail_msg">
                          +}<br class="gmail_msg">
                          +<br class="gmail_msg">
                           LLVM_DUMP_METHOD void
                          PathDiagnosticLocation::dump() const {<br
                            class="gmail_msg">
                             if (!isValid()) {<br class="gmail_msg">
                               llvm::errs() <<
                          "<INVALID>\n";<br class="gmail_msg">
                          <br class="gmail_msg">
                          Modified:
                          cfe/trunk/lib/StaticAnalyzer/Core/HTMLDiagnostics.cpp<br
                            class="gmail_msg">
                          URL: <a moz-do-not-send="true"
href="http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/StaticAnalyzer/Core/HTMLDiagnostics.cpp?rev=283092&r1=283091&r2=283092&view=diff"
                            rel="noreferrer" class="gmail_msg"
                            target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/StaticAnalyzer/Core/HTMLDiagnostics.cpp?rev=283092&r1=283091&r2=283092&view=diff</a><br
                            class="gmail_msg">
==============================================================================<br
                            class="gmail_msg">
                          ---
                          cfe/trunk/lib/StaticAnalyzer/Core/HTMLDiagnostics.cpp
                          (original)<br class="gmail_msg">
                          +++
                          cfe/trunk/lib/StaticAnalyzer/Core/HTMLDiagnostics.cpp
                          Mon Oct  3 02:58:26 2016<br class="gmail_msg">
                          @@ -152,13 +152,30 @@ void
                          HTMLDiagnostics::ReportDiag(const P<br
                            class="gmail_msg">
                             }<br class="gmail_msg">
                          <br class="gmail_msg">
                             // Process the path.<br class="gmail_msg">
                          -  unsigned n = path.size();<br
                            class="gmail_msg">
                          -  unsigned max = n;<br class="gmail_msg">
                          -<br class="gmail_msg">
                          -  for (PathPieces::const_reverse_iterator I =
                          path.rbegin(),<br class="gmail_msg">
                          -       E = path.rend();<br class="gmail_msg">
                          -        I != E; ++I, --n)<br
                            class="gmail_msg">
                          -    HandlePiece(R, FID, **I, n, max);<br
                            class="gmail_msg">
                          +  // Maintain the counts of extra note pieces
                          separately.<br class="gmail_msg">
                          +  unsigned TotalPieces = path.size();<br
                            class="gmail_msg">
                          +  unsigned TotalNotePieces =<br
                            class="gmail_msg">
                          +      std::count_if(path.begin(), path.end(),<br
                            class="gmail_msg">
                          +                    [](const
                          IntrusiveRefCntPtr<PathDiagnosticPiece>
                          &p) {<br class="gmail_msg">
                          +                      return
                          isa<PathDiagnosticNotePiece>(p.get());<br
                            class="gmail_msg">
                          +                    });<br class="gmail_msg">
                          +<br class="gmail_msg">
                          +  unsigned TotalRegularPieces = TotalPieces -
                          TotalNotePieces;<br class="gmail_msg">
                          +  unsigned NumRegularPieces =
                          TotalRegularPieces;<br class="gmail_msg">
                          +  unsigned NumNotePieces = TotalNotePieces;<br
                            class="gmail_msg">
                          +<br class="gmail_msg">
                          +  for (auto I = path.rbegin(), E =
                          path.rend(); I != E; ++I) {<br
                            class="gmail_msg">
                          +    if
                          (isa<PathDiagnosticNotePiece>(I->get()))
                          {<br class="gmail_msg">
                          +      // This adds diagnostic bubbles, but
                          not navigation.<br class="gmail_msg">
                          +      // Navigation through note pieces would
                          be added later,<br class="gmail_msg">
                          +      // as a separate pass through the piece
                          list.<br class="gmail_msg">
                          +      HandlePiece(R, FID, **I, NumNotePieces,
                          TotalNotePieces);<br class="gmail_msg">
                          +      --NumNotePieces;<br class="gmail_msg">
                          +    } else {<br class="gmail_msg">
                          +      HandlePiece(R, FID, **I,
                          NumRegularPieces, TotalRegularPieces);<br
                            class="gmail_msg">
                          +      --NumRegularPieces;<br
                            class="gmail_msg">
                          +    }<br class="gmail_msg">
                          +  }<br class="gmail_msg">
                          <br class="gmail_msg">
                             // Add line numbers, header, footer, etc.<br
                            class="gmail_msg">
                          <br class="gmail_msg">
                          @@ -192,24 +209,38 @@ void
                          HTMLDiagnostics::ReportDiag(const P<br
                            class="gmail_msg">
                             int ColumnNumber =
                          path.back()->getLocation().asLocation().getExpansionColumnNumber();<br
                            class="gmail_msg">
                          <br class="gmail_msg">
                             // Add the name of the file as an
                          <h1> tag.<br class="gmail_msg">
                          -<br class="gmail_msg">
                             {<br class="gmail_msg">
                               std::string s;<br class="gmail_msg">
                               llvm::raw_string_ostream os(s);<br
                            class="gmail_msg">
                          <br class="gmail_msg">
                               os << "<!-- REPORTHEADER
                          -->\n"<br class="gmail_msg">
                          -      << "<h3>Bug
                          Summary</h3>\n<table
                          class=\"simpletable\">\n"<br
                            class="gmail_msg">
                          +       << "<h3>Bug
                          Summary</h3>\n<table
                          class=\"simpletable\">\n"<br
                            class="gmail_msg">
                                     "<tr><td
                          class=\"rowname\">File:</td><td>"<br
                            class="gmail_msg">
                          -      << html::EscapeText(DirName)<br
                            class="gmail_msg">
                          -      <<
                          html::EscapeText(Entry->getName())<br
                            class="gmail_msg">
                          -      <<
                          "</td></tr>\n<tr><td
                          class=\"rowname\">Location:</td><td>"<br
                            class="gmail_msg">
                          -         "<a href=\"#EndPath\">line "<br
                            class="gmail_msg">
                          -      << LineNumber<br
                            class="gmail_msg">
                          -      << ", column "<br
                            class="gmail_msg">
                          -      << ColumnNumber<br
                            class="gmail_msg">
                          -      <<
                          "</a></td></tr>\n"<br
                            class="gmail_msg">
                          -         "<tr><td
                          class=\"rowname\">Description:</td><td>"<br
                            class="gmail_msg">
                          -      << D.getVerboseDescription()
                          << "</td></tr>\n";<br
                            class="gmail_msg">
                          +       << html::EscapeText(DirName)<br
                            class="gmail_msg">
                          +       <<
                          html::EscapeText(Entry->getName())<br
                            class="gmail_msg">
                          +       <<
                          "</td></tr>\n<tr><td
                          class=\"rowname\">Warning:</td><td>"<br
                            class="gmail_msg">
                          +          "<a href=\"#EndPath\">line "<br
                            class="gmail_msg">
                          +       << LineNumber<br
                            class="gmail_msg">
                          +       << ", column "<br
                            class="gmail_msg">
                          +       << ColumnNumber<br
                            class="gmail_msg">
                          +       << "</a><br />"<br
                            class="gmail_msg">
                          +       << D.getVerboseDescription()
                          << "</td></tr>\n";<br
                            class="gmail_msg">
                          +<br class="gmail_msg">
                          +    // The navigation across the extra notes
                          pieces.<br class="gmail_msg">
                          +    unsigned NumExtraPieces = 0;<br
                            class="gmail_msg">
                          +    for (const auto &Piece : path) {<br
                            class="gmail_msg">
                          +      if (const auto *P =
                          dyn_cast<PathDiagnosticNotePiece>(Piece.get()))
                          {<br class="gmail_msg">
                          +        int LineNumber =<br class="gmail_msg">
                          +           
                          P->getLocation().asLocation().getExpansionLineNumber();<br
                            class="gmail_msg">
                          +        int ColumnNumber =<br
                            class="gmail_msg">
                          +           
                          P->getLocation().asLocation().getExpansionColumnNumber();<br
                            class="gmail_msg">
                          +        os << "<tr><td
                          class=\"rowname\">Note:</td><td>"<br
                            class="gmail_msg">
                          +           << "<a href=\"#Note"
                          << NumExtraPieces << "\">line "<br
                            class="gmail_msg">
                          +           << LineNumber << ",
                          column " << ColumnNumber <<
                          "</a><br />"<br class="gmail_msg">
                          +           << P->getString()
                          << "</td></tr>";<br
                            class="gmail_msg">
                          +        ++NumExtraPieces;<br
                            class="gmail_msg">
                          +      }<br class="gmail_msg">
                          +    }<br class="gmail_msg">
                          <br class="gmail_msg">
                               // Output any other meta data.<br
                            class="gmail_msg">
                          <br class="gmail_msg">
                          @@ -385,13 +416,20 @@ void
                          HTMLDiagnostics::HandlePiece(Rewrit<br
                            class="gmail_msg">
                             // Create the html for the message.<br
                            class="gmail_msg">
                          <br class="gmail_msg">
                             const char *Kind = nullptr;<br
                            class="gmail_msg">
                          +  bool IsNote = false;<br class="gmail_msg">
                          +  bool SuppressIndex = (max == 1);<br
                            class="gmail_msg">
                             switch (P.getKind()) {<br class="gmail_msg">
                             case PathDiagnosticPiece::Call:<br
                            class="gmail_msg">
                          -      llvm_unreachable("Calls should already
                          be handled");<br class="gmail_msg">
                          +      llvm_unreachable("Calls and extra notes
                          should already be handled");<br
                            class="gmail_msg">
                             case PathDiagnosticPiece::Event:  Kind =
                          "Event"; break;<br class="gmail_msg">
                             case PathDiagnosticPiece::ControlFlow: Kind
                          = "Control"; break;<br class="gmail_msg">
                               // Setting Kind to "Control" is
                          intentional.<br class="gmail_msg">
                             case PathDiagnosticPiece::Macro: Kind =
                          "Control"; break;<br class="gmail_msg">
                          +  case PathDiagnosticPiece::Note:<br
                            class="gmail_msg">
                          +    Kind = "Note";<br class="gmail_msg">
                          +    IsNote = true;<br class="gmail_msg">
                          +    SuppressIndex = true;<br
                            class="gmail_msg">
                          +    break;<br class="gmail_msg">
                             }<br class="gmail_msg">
                          <br class="gmail_msg">
                             std::string sbuf;<br class="gmail_msg">
                          @@ -399,7 +437,9 @@ void
                          HTMLDiagnostics::HandlePiece(Rewrit<br
                            class="gmail_msg">
                          <br class="gmail_msg">
                             os << "\n<tr><td
                          class=\"num\"></td><td
                          class=\"line\"><div id=\"";<br
                            class="gmail_msg">
                          <br class="gmail_msg">
                          -  if (num == max)<br class="gmail_msg">
                          +  if (IsNote)<br class="gmail_msg">
                          +    os << "Note" << num;<br
                            class="gmail_msg">
                          +  else if (num == max)<br class="gmail_msg">
                               os << "EndPath";<br
                            class="gmail_msg">
                             else<br class="gmail_msg">
                               os << "Path" << num;<br
                            class="gmail_msg">
                          @@ -461,7 +501,7 @@ void
                          HTMLDiagnostics::HandlePiece(Rewrit<br
                            class="gmail_msg">
                          <br class="gmail_msg">
                             os << "\">";<br class="gmail_msg">
                          <br class="gmail_msg">
                          -  if (max > 1) {<br class="gmail_msg">
                          +  if (!SuppressIndex) {<br class="gmail_msg">
                               os << "<table
                          class=\"msgT\"><tr><td
                          valign=\"top\">";<br class="gmail_msg">
                               os << "<div class=\"PathIndex";<br
                            class="gmail_msg">
                               if (Kind) os << " PathIndex"
                          << Kind;<br class="gmail_msg">
                          @@ -501,7 +541,7 @@ void
                          HTMLDiagnostics::HandlePiece(Rewrit<br
                            class="gmail_msg">
                          <br class="gmail_msg">
                               os << "':\n";<br class="gmail_msg">
                          <br class="gmail_msg">
                          -    if (max > 1) {<br class="gmail_msg">
                          +    if (!SuppressIndex) {<br
                            class="gmail_msg">
                                 os << "</td>";<br
                            class="gmail_msg">
                                 if (num < max) {<br
                            class="gmail_msg">
                                   os << "<td><div
                          class=\"PathNav\"><a href=\"#";<br
                            class="gmail_msg">
                          @@ -523,7 +563,7 @@ void
                          HTMLDiagnostics::HandlePiece(Rewrit<br
                            class="gmail_msg">
                             else {<br class="gmail_msg">
                               os <<
                          html::EscapeText(P.getString());<br
                            class="gmail_msg">
                          <br class="gmail_msg">
                          -    if (max > 1) {<br class="gmail_msg">
                          +    if (!SuppressIndex) {<br
                            class="gmail_msg">
                                 os << "</td>";<br
                            class="gmail_msg">
                                 if (num < max) {<br
                            class="gmail_msg">
                                   os << "<td><div
                          class=\"PathNav\"><a href=\"#";<br
                            class="gmail_msg">
                          <br class="gmail_msg">
                          Modified:
                          cfe/trunk/lib/StaticAnalyzer/Core/PathDiagnostic.cpp<br
                            class="gmail_msg">
                          URL: <a moz-do-not-send="true"
href="http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/StaticAnalyzer/Core/PathDiagnostic.cpp?rev=283092&r1=283091&r2=283092&view=diff"
                            rel="noreferrer" class="gmail_msg"
                            target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/StaticAnalyzer/Core/PathDiagnostic.cpp?rev=283092&r1=283091&r2=283092&view=diff</a><br
                            class="gmail_msg">
==============================================================================<br
                            class="gmail_msg">
                          ---
                          cfe/trunk/lib/StaticAnalyzer/Core/PathDiagnostic.cpp
                          (original)<br class="gmail_msg">
                          +++
                          cfe/trunk/lib/StaticAnalyzer/Core/PathDiagnostic.cpp
                          Mon Oct  3 02:58:26 2016<br class="gmail_msg">
                          @@ -60,6 +60,7 @@
                          PathDiagnosticEventPiece::~PathDiagnosti<br
                            class="gmail_msg">
 PathDiagnosticCallPiece::~PathDiagnosticCallPiece() {}<br
                            class="gmail_msg">
 PathDiagnosticControlFlowPiece::~PathDiagnosticControlFlowPiece() {}<br
                            class="gmail_msg">
 PathDiagnosticMacroPiece::~PathDiagnosticMacroPiece() {}<br
                            class="gmail_msg">
+PathDiagnosticNotePiece::~PathDiagnosticNotePiece() {}<br
                            class="gmail_msg">
                          <br class="gmail_msg">
                           void PathPieces::flattenTo(PathPieces
                          &Primary, PathPieces &Current,<br
                            class="gmail_msg">
                                                      bool
                          ShouldFlattenMacros) const {<br
                            class="gmail_msg">
                          @@ -95,6 +96,7 @@ void
                          PathPieces::flattenTo(PathPieces &P<br
                            class="gmail_msg">
                               }<br class="gmail_msg">
                               case PathDiagnosticPiece::Event:<br
                            class="gmail_msg">
                               case PathDiagnosticPiece::ControlFlow:<br
                            class="gmail_msg">
                          +    case PathDiagnosticPiece::Note:<br
                            class="gmail_msg">
                                 Current.push_back(Piece);<br
                            class="gmail_msg">
                                 break;<br class="gmail_msg">
                               }<br class="gmail_msg">
                          @@ -342,15 +344,16 @@ static
                          Optional<bool> comparePiece(const<br
                            class="gmail_msg">
                             }<br class="gmail_msg">
                          <br class="gmail_msg">
                             switch (X.getKind()) {<br class="gmail_msg">
                          -    case
                          clang::ento::PathDiagnosticPiece::ControlFlow:<br
                            class="gmail_msg">
                          +    case PathDiagnosticPiece::ControlFlow:<br
                            class="gmail_msg">
                                 return
                          compareControlFlow(cast<PathDiagnosticControlFlowPiece>(X),<br
                            class="gmail_msg">
                                                         
                           cast<PathDiagnosticControlFlowPiece>(Y));<br
                            class="gmail_msg">
                          -    case
                          clang::ento::PathDiagnosticPiece::Event:<br
                            class="gmail_msg">
                          +    case PathDiagnosticPiece::Event:<br
                            class="gmail_msg">
                          +    case PathDiagnosticPiece::Note:<br
                            class="gmail_msg">
                                 return None;<br class="gmail_msg">
                          -    case
                          clang::ento::PathDiagnosticPiece::Macro:<br
                            class="gmail_msg">
                          +    case PathDiagnosticPiece::Macro:<br
                            class="gmail_msg">
                                 return
                          compareMacro(cast<PathDiagnosticMacroPiece>(X),<br
                            class="gmail_msg">
                                                   
                           cast<PathDiagnosticMacroPiece>(Y));<br
                            class="gmail_msg">
                          -    case
                          clang::ento::PathDiagnosticPiece::Call:<br
                            class="gmail_msg">
                          +    case PathDiagnosticPiece::Call:<br
                            class="gmail_msg">
                                 return
                          compareCall(cast<PathDiagnosticCallPiece>(X),<br
                            class="gmail_msg">
                                                   
                          cast<PathDiagnosticCallPiece>(Y));<br
                            class="gmail_msg">
                             }<br class="gmail_msg">
                          @@ -1098,6 +1101,10 @@ void
                          PathDiagnosticMacroPiece::Profile(l<br
                            class="gmail_msg">
                               ID.Add(**I);<br class="gmail_msg">
                           }<br class="gmail_msg">
                          <br class="gmail_msg">
                          +void
                          PathDiagnosticNotePiece::Profile(llvm::FoldingSetNodeID
                          &ID) const {<br class="gmail_msg">
                          +  PathDiagnosticSpotPiece::Profile(ID);<br
                            class="gmail_msg">
                          +}<br class="gmail_msg">
                          +<br class="gmail_msg">
                           void
                          PathDiagnostic::Profile(llvm::FoldingSetNodeID
                          &ID) const {<br class="gmail_msg">
                             ID.Add(getLocation());<br class="gmail_msg">
                             ID.AddString(BugType);<br class="gmail_msg">
                          <br class="gmail_msg">
                          Modified:
                          cfe/trunk/lib/StaticAnalyzer/Core/PlistDiagnostics.cpp<br
                            class="gmail_msg">
                          URL: <a moz-do-not-send="true"
href="http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/StaticAnalyzer/Core/PlistDiagnostics.cpp?rev=283092&r1=283091&r2=283092&view=diff"
                            rel="noreferrer" class="gmail_msg"
                            target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/StaticAnalyzer/Core/PlistDiagnostics.cpp?rev=283092&r1=283091&r2=283092&view=diff</a><br
                            class="gmail_msg">
==============================================================================<br
                            class="gmail_msg">
                          ---
                          cfe/trunk/lib/StaticAnalyzer/Core/PlistDiagnostics.cpp
                          (original)<br class="gmail_msg">
                          +++
                          cfe/trunk/lib/StaticAnalyzer/Core/PlistDiagnostics.cpp
                          Mon Oct  3 02:58:26 2016<br class="gmail_msg">
                          @@ -281,6 +281,9 @@ static void
                          ReportPiece(raw_ostream &o,<br
                            class="gmail_msg">
                                 ReportMacro(o,
                          cast<PathDiagnosticMacroPiece>(P), FM,
                          SM, LangOpts,<br class="gmail_msg">
                                             indent, depth);<br
                            class="gmail_msg">
                                 break;<br class="gmail_msg">
                          +    case PathDiagnosticPiece::Note:<br
                            class="gmail_msg">
                          +      // FIXME: Extend the plist format to
                          support those.<br class="gmail_msg">
                          +      break;<br class="gmail_msg">
                             }<br class="gmail_msg">
                           }<br class="gmail_msg">
                          <br class="gmail_msg">
                          <br class="gmail_msg">
                          Modified:
                          cfe/trunk/lib/StaticAnalyzer/Frontend/AnalysisConsumer.cpp<br
                            class="gmail_msg">
                          URL: <a moz-do-not-send="true"
href="http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/StaticAnalyzer/Frontend/AnalysisConsumer.cpp?rev=283092&r1=283091&r2=283092&view=diff"
                            rel="noreferrer" class="gmail_msg"
                            target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/StaticAnalyzer/Frontend/AnalysisConsumer.cpp?rev=283092&r1=283091&r2=283092&view=diff</a><br
                            class="gmail_msg">
==============================================================================<br
                            class="gmail_msg">
                          ---
                          cfe/trunk/lib/StaticAnalyzer/Frontend/AnalysisConsumer.cpp
                          (original)<br class="gmail_msg">
                          +++
                          cfe/trunk/lib/StaticAnalyzer/Frontend/AnalysisConsumer.cpp
                          Mon Oct  3 02:58:26 2016<br class="gmail_msg">
                          @@ -113,16 +113,28 @@ public:<br
                            class="gmail_msg">
                                 Diag.Report(WarnLoc, WarnID) <<
                          PD->getShortDescription()<br
                            class="gmail_msg">
                                                              <<
                          PD->path.back()->getRanges();<br
                            class="gmail_msg">
                          <br class="gmail_msg">
                          +      // First, add extra notes, even if
                          paths should not be included.<br
                            class="gmail_msg">
                          +      for (const auto &Piece :
                          PD->path) {<br class="gmail_msg">
                          +        if
                          (!isa<PathDiagnosticNotePiece>(Piece.get()))<br
                            class="gmail_msg">
                          +          continue;<br class="gmail_msg">
                          +<br class="gmail_msg">
                          +        SourceLocation NoteLoc =
                          Piece->getLocation().asLocation();<br
                            class="gmail_msg">
                          +        Diag.Report(NoteLoc, NoteID) <<
                          Piece->getString()<br class="gmail_msg">
                          +                                     <<
                          Piece->getRanges();<br class="gmail_msg">
                          +      }<br class="gmail_msg">
                          +<br class="gmail_msg">
                                 if (!IncludePath)<br class="gmail_msg">
                                   continue;<br class="gmail_msg">
                          <br class="gmail_msg">
                          +      // Then, add the path notes if
                          necessary.<br class="gmail_msg">
                                 PathPieces FlatPath =
                          PD->path.flatten(/*ShouldFlattenMacros=*/true);<br
                            class="gmail_msg">
                          -      for (PathPieces::const_iterator PI =
                          FlatPath.begin(),<br class="gmail_msg">
                          -                                      PE =
                          FlatPath.end();<br class="gmail_msg">
                          -           PI != PE; ++PI) {<br
                            class="gmail_msg">
                          -        SourceLocation NoteLoc =
                          (*PI)->getLocation().asLocation();<br
                            class="gmail_msg">
                          -        Diag.Report(NoteLoc, NoteID) <<
                          (*PI)->getString()<br class="gmail_msg">
                          -                                     <<
                          (*PI)->getRanges();<br class="gmail_msg">
                          +      for (const auto &Piece : FlatPath)
                          {<br class="gmail_msg">
                          +        if
                          (isa<PathDiagnosticNotePiece>(Piece.get()))<br
                            class="gmail_msg">
                          +          continue;<br class="gmail_msg">
                          +<br class="gmail_msg">
                          +        SourceLocation NoteLoc =
                          Piece->getLocation().asLocation();<br
                            class="gmail_msg">
                          +        Diag.Report(NoteLoc, NoteID) <<
                          Piece->getString()<br class="gmail_msg">
                          +                                     <<
                          Piece->getRanges();<br class="gmail_msg">
                                 }<br class="gmail_msg">
                               }<br class="gmail_msg">
                             }<br class="gmail_msg">
                          <br class="gmail_msg">
                          <br class="gmail_msg">
_______________________________________________<br class="gmail_msg">
                          cfe-commits mailing list<br class="gmail_msg">
                          <a moz-do-not-send="true"
                            href="mailto:cfe-commits@lists.llvm.org"
                            class="gmail_msg" target="_blank">cfe-commits@lists.llvm.org</a><br
                            class="gmail_msg">
                          <a moz-do-not-send="true"
                            href="http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits"
                            rel="noreferrer" class="gmail_msg"
                            target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits</a><br
                            class="gmail_msg">
                        </blockquote>
                      </div>
                      <br class="gmail_msg">
                      <fieldset
                        class="m_-2630513323378653476m_-1065106170221421501mimeAttachmentHeader
                        gmail_msg"></fieldset>
                      <br class="gmail_msg">
                      <pre class="gmail_msg">_______________________________________________
cfe-commits mailing list
<a moz-do-not-send="true" class="m_-2630513323378653476m_-1065106170221421501moz-txt-link-abbreviated gmail_msg" href="mailto:cfe-commits@lists.llvm.org" target="_blank">cfe-commits@lists.llvm.org</a>
<a moz-do-not-send="true" class="m_-2630513323378653476m_-1065106170221421501moz-txt-link-freetext gmail_msg" href="http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits</a>
</pre>
                    </blockquote>
                    <br class="gmail_msg">
                  </div>
                </blockquote>
              </div>
            </blockquote>
            <br class="gmail_msg">
          </div>
        </blockquote>
      </div>
    </blockquote>
    <br>
  </body>
</html>