[cfe-commits] r165354 - in /cfe/trunk: lib/StaticAnalyzer/Core/PathDiagnostic.cpp test/Analysis/plist-output.m

NAKAMURA Takumi geek4civic at gmail.com
Fri Oct 5 18:43:00 PDT 2012


Jordan it fails on some hosts for me.

http://bb.pgr.jp/builders/cmake-clang-x86_64-linux/builds/2174
http://bb.pgr.jp/builders/cmake-clang-i686-mingw32/builds/1508
http://bb.pgr.jp/builders/cmake-clang-i686-msvc10/builds/1593

The emissions of each host attached.

...Takumi

2012/10/6 Jordan Rose <jordan_rose at apple.com>:
> Author: jrose
> Date: Fri Oct  5 20:19:30 2012
> New Revision: 165354
>
> URL: http://llvm.org/viewvc/llvm-project?rev=165354&view=rev
> Log:
> [analyzer] Handle implicit statements used for end-of-path nodes' source locs.
>
> Some implicit statements, such as the implicit 'self' inserted for "free"
> Objective-C ivar access, have invalid source locations. If one of these
> statements is the location where an issue is reported, we'll now look at
> the enclosing statements for a valid source location.
>
> <rdar://problem/12446776>
>
> Modified:
>     cfe/trunk/lib/StaticAnalyzer/Core/PathDiagnostic.cpp
>     cfe/trunk/test/Analysis/plist-output.m
>
> Modified: cfe/trunk/lib/StaticAnalyzer/Core/PathDiagnostic.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/StaticAnalyzer/Core/PathDiagnostic.cpp?rev=165354&r1=165353&r2=165354&view=diff
> ==============================================================================
> --- cfe/trunk/lib/StaticAnalyzer/Core/PathDiagnostic.cpp (original)
> +++ cfe/trunk/lib/StaticAnalyzer/Core/PathDiagnostic.cpp Fri Oct  5 20:19:30 2012
> @@ -612,21 +612,26 @@
>    assert(N && "Cannot create a location with a null node.");
>
>    const ExplodedNode *NI = N;
> +  const Stmt *S = 0;
>
>    while (NI) {
>      ProgramPoint P = NI->getLocation();
> -    const LocationContext *LC = P.getLocationContext();
>      if (const StmtPoint *PS = dyn_cast<StmtPoint>(&P))
> -      return PathDiagnosticLocation(PS->getStmt(), SM, LC);
> -    else if (const BlockEdge *BE = dyn_cast<BlockEdge>(&P)) {
> -      const Stmt *Term = BE->getSrc()->getTerminator();
> -      if (Term) {
> -        return PathDiagnosticLocation(Term, SM, LC);
> -      }
> -    }
> +      S = PS->getStmt();
> +    else if (const BlockEdge *BE = dyn_cast<BlockEdge>(&P))
> +      S = BE->getSrc()->getTerminator();
> +    if (S)
> +      break;
>      NI = NI->succ_empty() ? 0 : *(NI->succ_begin());
>    }
>
> +  if (S) {
> +    const LocationContext *LC = NI->getLocationContext();
> +    if (S->getLocStart().isValid())
> +      return PathDiagnosticLocation(S, SM, LC);
> +    return PathDiagnosticLocation(getValidSourceLocation(S, LC), SM);
> +  }
> +
>    return createDeclEnd(N->getLocationContext(), SM);
>  }
>
>
> Modified: cfe/trunk/test/Analysis/plist-output.m
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Analysis/plist-output.m?rev=165354&r1=165353&r2=165354&view=diff
> ==============================================================================
> --- cfe/trunk/test/Analysis/plist-output.m (original)
> +++ cfe/trunk/test/Analysis/plist-output.m Fri Oct  5 20:19:30 2012
> @@ -77,6 +77,17 @@
>      *p = 0xDEADBEEF; // expected-warning {{deference}}
>    }
>  }
> +
> +// The original source for the above Radar contains another problem:
> +// if the end-of-path node is an implicit statement, it may not have a valid
> +// source location. <rdar://problem/12446776>
> +- (void)test2 {
> +  if (bar_cond_assign()) {
> +    id foo = [[RDar10797980 alloc] init]; // leak
> +  }
> +  (void)y; // first statement after the 'if' is an implicit 'self' DeclRefExpr
> +}
> +
>  @end
>
>  // Test that loops are documented in the path.
> @@ -1789,6 +1800,64 @@
>  // CHECK-NEXT:    <key>path</key>
>  // CHECK-NEXT:    <array>
>  // CHECK-NEXT:     <dict>
> +// CHECK-NEXT:      <key>kind</key><string>event</string>
> +// CHECK-NEXT:      <key>location</key>
> +// CHECK-NEXT:      <dict>
> +// CHECK-NEXT:       <key>line</key><integer>86</integer>
> +// CHECK-NEXT:       <key>col</key><integer>8</integer>
> +// CHECK-NEXT:       <key>file</key><integer>0</integer>
> +// CHECK-NEXT:      </dict>
> +// CHECK-NEXT:      <key>ranges</key>
> +// CHECK-NEXT:      <array>
> +// CHECK-NEXT:        <array>
> +// CHECK-NEXT:         <dict>
> +// CHECK-NEXT:          <key>line</key><integer>86</integer>
> +// CHECK-NEXT:          <key>col</key><integer>8</integer>
> +// CHECK-NEXT:          <key>file</key><integer>0</integer>
> +// CHECK-NEXT:         </dict>
> +// CHECK-NEXT:         <dict>
> +// CHECK-NEXT:          <key>line</key><integer>86</integer>
> +// CHECK-NEXT:          <key>col</key><integer>10</integer>
> +// CHECK-NEXT:          <key>file</key><integer>0</integer>
> +// CHECK-NEXT:         </dict>
> +// CHECK-NEXT:        </array>
> +// CHECK-NEXT:        <array>
> +// CHECK-NEXT:         <dict>
> +// CHECK-NEXT:          <key>line</key><integer>86</integer>
> +// CHECK-NEXT:          <key>col</key><integer>14</integer>
> +// CHECK-NEXT:          <key>file</key><integer>0</integer>
> +// CHECK-NEXT:         </dict>
> +// CHECK-NEXT:         <dict>
> +// CHECK-NEXT:          <key>line</key><integer>86</integer>
> +// CHECK-NEXT:          <key>col</key><integer>40</integer>
> +// CHECK-NEXT:          <key>file</key><integer>0</integer>
> +// CHECK-NEXT:         </dict>
> +// CHECK-NEXT:        </array>
> +// CHECK-NEXT:      </array>
> +// CHECK-NEXT:      <key>depth</key><integer>0</integer>
> +// CHECK-NEXT:      <key>extended_message</key>
> +// CHECK-NEXT:      <string>Value stored to 'foo' during its initialization is never read</string>
> +// CHECK-NEXT:      <key>message</key>
> +// CHECK-NEXT:      <string>Value stored to 'foo' during its initialization is never read</string>
> +// CHECK-NEXT:     </dict>
> +// CHECK-NEXT:    </array>
> +// CHECK-NEXT:    <key>description</key><string>Value stored to 'foo' during its initialization is never read</string>
> +// CHECK-NEXT:    <key>category</key><string>Dead store</string>
> +// CHECK-NEXT:    <key>type</key><string>Dead initialization</string>
> +// CHECK-NEXT:   <key>issue_context_kind</key><string>Objective-C method</string>
> +// CHECK-NEXT:   <key>issue_context</key><string>test2</string>
> +// CHECK-NEXT:   <key>issue_hash</key><integer>2</integer>
> +// CHECK-NEXT:   <key>location</key>
> +// CHECK-NEXT:   <dict>
> +// CHECK-NEXT:    <key>line</key><integer>86</integer>
> +// CHECK-NEXT:    <key>col</key><integer>8</integer>
> +// CHECK-NEXT:    <key>file</key><integer>0</integer>
> +// CHECK-NEXT:   </dict>
> +// CHECK-NEXT:   </dict>
> +// CHECK-NEXT:   <dict>
> +// CHECK-NEXT:    <key>path</key>
> +// CHECK-NEXT:    <array>
> +// CHECK-NEXT:     <dict>
>  // CHECK-NEXT:      <key>kind</key><string>control</string>
>  // CHECK-NEXT:      <key>edges</key>
>  // CHECK-NEXT:       <array>
> @@ -1796,25 +1865,187 @@
>  // CHECK-NEXT:         <key>start</key>
>  // CHECK-NEXT:          <array>
>  // CHECK-NEXT:           <dict>
> -// CHECK-NEXT:            <key>line</key><integer>84</integer>
> +// CHECK-NEXT:            <key>line</key><integer>85</integer>
>  // CHECK-NEXT:            <key>col</key><integer>3</integer>
>  // CHECK-NEXT:            <key>file</key><integer>0</integer>
>  // CHECK-NEXT:           </dict>
>  // CHECK-NEXT:           <dict>
> -// CHECK-NEXT:            <key>line</key><integer>84</integer>
> +// CHECK-NEXT:            <key>line</key><integer>85</integer>
> +// CHECK-NEXT:            <key>col</key><integer>4</integer>
> +// CHECK-NEXT:            <key>file</key><integer>0</integer>
> +// CHECK-NEXT:           </dict>
> +// CHECK-NEXT:          </array>
> +// CHECK-NEXT:         <key>end</key>
> +// CHECK-NEXT:          <array>
> +// CHECK-NEXT:           <dict>
> +// CHECK-NEXT:            <key>line</key><integer>86</integer>
>  // CHECK-NEXT:            <key>col</key><integer>5</integer>
>  // CHECK-NEXT:            <key>file</key><integer>0</integer>
>  // CHECK-NEXT:           </dict>
> +// CHECK-NEXT:           <dict>
> +// CHECK-NEXT:            <key>line</key><integer>86</integer>
> +// CHECK-NEXT:            <key>col</key><integer>6</integer>
> +// CHECK-NEXT:            <key>file</key><integer>0</integer>
> +// CHECK-NEXT:           </dict>
> +// CHECK-NEXT:          </array>
> +// CHECK-NEXT:        </dict>
> +// CHECK-NEXT:       </array>
> +// CHECK-NEXT:     </dict>
> +// CHECK-NEXT:     <dict>
> +// CHECK-NEXT:      <key>kind</key><string>control</string>
> +// CHECK-NEXT:      <key>edges</key>
> +// CHECK-NEXT:       <array>
> +// CHECK-NEXT:        <dict>
> +// CHECK-NEXT:         <key>start</key>
> +// CHECK-NEXT:          <array>
> +// CHECK-NEXT:           <dict>
> +// CHECK-NEXT:            <key>line</key><integer>86</integer>
> +// CHECK-NEXT:            <key>col</key><integer>5</integer>
> +// CHECK-NEXT:            <key>file</key><integer>0</integer>
> +// CHECK-NEXT:           </dict>
> +// CHECK-NEXT:           <dict>
> +// CHECK-NEXT:            <key>line</key><integer>86</integer>
> +// CHECK-NEXT:            <key>col</key><integer>6</integer>
> +// CHECK-NEXT:            <key>file</key><integer>0</integer>
> +// CHECK-NEXT:           </dict>
>  // CHECK-NEXT:          </array>
>  // CHECK-NEXT:         <key>end</key>
>  // CHECK-NEXT:          <array>
>  // CHECK-NEXT:           <dict>
> -// CHECK-NEXT:            <key>line</key><integer>85</integer>
> +// CHECK-NEXT:            <key>line</key><integer>86</integer>
> +// CHECK-NEXT:            <key>col</key><integer>14</integer>
> +// CHECK-NEXT:            <key>file</key><integer>0</integer>
> +// CHECK-NEXT:           </dict>
> +// CHECK-NEXT:           <dict>
> +// CHECK-NEXT:            <key>line</key><integer>86</integer>
> +// CHECK-NEXT:            <key>col</key><integer>14</integer>
> +// CHECK-NEXT:            <key>file</key><integer>0</integer>
> +// CHECK-NEXT:           </dict>
> +// CHECK-NEXT:          </array>
> +// CHECK-NEXT:        </dict>
> +// CHECK-NEXT:       </array>
> +// CHECK-NEXT:     </dict>
> +// CHECK-NEXT:     <dict>
> +// CHECK-NEXT:      <key>kind</key><string>event</string>
> +// CHECK-NEXT:      <key>location</key>
> +// CHECK-NEXT:      <dict>
> +// CHECK-NEXT:       <key>line</key><integer>86</integer>
> +// CHECK-NEXT:       <key>col</key><integer>14</integer>
> +// CHECK-NEXT:       <key>file</key><integer>0</integer>
> +// CHECK-NEXT:      </dict>
> +// CHECK-NEXT:      <key>ranges</key>
> +// CHECK-NEXT:      <array>
> +// CHECK-NEXT:        <array>
> +// CHECK-NEXT:         <dict>
> +// CHECK-NEXT:          <key>line</key><integer>86</integer>
> +// CHECK-NEXT:          <key>col</key><integer>14</integer>
> +// CHECK-NEXT:          <key>file</key><integer>0</integer>
> +// CHECK-NEXT:         </dict>
> +// CHECK-NEXT:         <dict>
> +// CHECK-NEXT:          <key>line</key><integer>86</integer>
> +// CHECK-NEXT:          <key>col</key><integer>40</integer>
> +// CHECK-NEXT:          <key>file</key><integer>0</integer>
> +// CHECK-NEXT:         </dict>
> +// CHECK-NEXT:        </array>
> +// CHECK-NEXT:      </array>
> +// CHECK-NEXT:      <key>depth</key><integer>0</integer>
> +// CHECK-NEXT:      <key>extended_message</key>
> +// CHECK-NEXT:      <string>Method returns an Objective-C object with a +1 retain count</string>
> +// CHECK-NEXT:      <key>message</key>
> +// CHECK-NEXT:      <string>Method returns an Objective-C object with a +1 retain count</string>
> +// CHECK-NEXT:     </dict>
> +// CHECK-NEXT:     <dict>
> +// CHECK-NEXT:      <key>kind</key><string>control</string>
> +// CHECK-NEXT:      <key>edges</key>
> +// CHECK-NEXT:       <array>
> +// CHECK-NEXT:        <dict>
> +// CHECK-NEXT:         <key>start</key>
> +// CHECK-NEXT:          <array>
> +// CHECK-NEXT:           <dict>
> +// CHECK-NEXT:            <key>line</key><integer>86</integer>
> +// CHECK-NEXT:            <key>col</key><integer>14</integer>
> +// CHECK-NEXT:            <key>file</key><integer>0</integer>
> +// CHECK-NEXT:           </dict>
> +// CHECK-NEXT:           <dict>
> +// CHECK-NEXT:            <key>line</key><integer>86</integer>
> +// CHECK-NEXT:            <key>col</key><integer>14</integer>
> +// CHECK-NEXT:            <key>file</key><integer>0</integer>
> +// CHECK-NEXT:           </dict>
> +// CHECK-NEXT:          </array>
> +// CHECK-NEXT:         <key>end</key>
> +// CHECK-NEXT:          <array>
> +// CHECK-NEXT:           <dict>
> +// CHECK-NEXT:            <key>line</key><integer>88</integer>
> +// CHECK-NEXT:            <key>col</key><integer>9</integer>
> +// CHECK-NEXT:            <key>file</key><integer>0</integer>
> +// CHECK-NEXT:           </dict>
> +// CHECK-NEXT:           <dict>
> +// CHECK-NEXT:            <key>line</key><integer>88</integer>
> +// CHECK-NEXT:            <key>col</key><integer>9</integer>
> +// CHECK-NEXT:            <key>file</key><integer>0</integer>
> +// CHECK-NEXT:           </dict>
> +// CHECK-NEXT:          </array>
> +// CHECK-NEXT:        </dict>
> +// CHECK-NEXT:       </array>
> +// CHECK-NEXT:     </dict>
> +// CHECK-NEXT:     <dict>
> +// CHECK-NEXT:      <key>kind</key><string>event</string>
> +// CHECK-NEXT:      <key>location</key>
> +// CHECK-NEXT:      <dict>
> +// CHECK-NEXT:       <key>line</key><integer>88</integer>
> +// CHECK-NEXT:       <key>col</key><integer>9</integer>
> +// CHECK-NEXT:       <key>file</key><integer>0</integer>
> +// CHECK-NEXT:      </dict>
> +// CHECK-NEXT:      <key>depth</key><integer>0</integer>
> +// CHECK-NEXT:      <key>extended_message</key>
> +// CHECK-NEXT:      <string>Object leaked: object allocated and stored into 'foo' is not referenced later in this execution path and has a retain count of +1</string>
> +// CHECK-NEXT:      <key>message</key>
> +// CHECK-NEXT:      <string>Object leaked: object allocated and stored into 'foo' is not referenced later in this execution path and has a retain count of +1</string>
> +// CHECK-NEXT:     </dict>
> +// CHECK-NEXT:    </array>
> +// CHECK-NEXT:    <key>description</key><string>Potential leak of an object stored into 'foo'</string>
> +// CHECK-NEXT:    <key>category</key><string>Memory (Core Foundation/Objective-C)</string>
> +// CHECK-NEXT:    <key>type</key><string>Leak</string>
> +// CHECK-NEXT:   <key>issue_context_kind</key><string>Objective-C method</string>
> +// CHECK-NEXT:   <key>issue_context</key><string>test2</string>
> +// CHECK-NEXT:   <key>issue_hash</key><integer>4</integer>
> +// CHECK-NEXT:   <key>location</key>
> +// CHECK-NEXT:   <dict>
> +// CHECK-NEXT:    <key>line</key><integer>88</integer>
> +// CHECK-NEXT:    <key>col</key><integer>9</integer>
> +// CHECK-NEXT:    <key>file</key><integer>0</integer>
> +// CHECK-NEXT:   </dict>
> +// CHECK-NEXT:   </dict>
> +// CHECK-NEXT:   <dict>
> +// CHECK-NEXT:    <key>path</key>
> +// CHECK-NEXT:    <array>
> +// CHECK-NEXT:     <dict>
> +// CHECK-NEXT:      <key>kind</key><string>control</string>
> +// CHECK-NEXT:      <key>edges</key>
> +// CHECK-NEXT:       <array>
> +// CHECK-NEXT:        <dict>
> +// CHECK-NEXT:         <key>start</key>
> +// CHECK-NEXT:          <array>
> +// CHECK-NEXT:           <dict>
> +// CHECK-NEXT:            <key>line</key><integer>95</integer>
> +// CHECK-NEXT:            <key>col</key><integer>3</integer>
> +// CHECK-NEXT:            <key>file</key><integer>0</integer>
> +// CHECK-NEXT:           </dict>
> +// CHECK-NEXT:           <dict>
> +// CHECK-NEXT:            <key>line</key><integer>95</integer>
> +// CHECK-NEXT:            <key>col</key><integer>5</integer>
> +// CHECK-NEXT:            <key>file</key><integer>0</integer>
> +// CHECK-NEXT:           </dict>
> +// CHECK-NEXT:          </array>
> +// CHECK-NEXT:         <key>end</key>
> +// CHECK-NEXT:          <array>
> +// CHECK-NEXT:           <dict>
> +// CHECK-NEXT:            <key>line</key><integer>96</integer>
>  // CHECK-NEXT:            <key>col</key><integer>4</integer>
>  // CHECK-NEXT:            <key>file</key><integer>0</integer>
>  // CHECK-NEXT:           </dict>
>  // CHECK-NEXT:           <dict>
> -// CHECK-NEXT:            <key>line</key><integer>85</integer>
> +// CHECK-NEXT:            <key>line</key><integer>96</integer>
>  // CHECK-NEXT:            <key>col</key><integer>5</integer>
>  // CHECK-NEXT:            <key>file</key><integer>0</integer>
>  // CHECK-NEXT:           </dict>
> @@ -1830,12 +2061,12 @@
>  // CHECK-NEXT:         <key>start</key>
>  // CHECK-NEXT:          <array>
>  // CHECK-NEXT:           <dict>
> -// CHECK-NEXT:            <key>line</key><integer>85</integer>
> +// CHECK-NEXT:            <key>line</key><integer>96</integer>
>  // CHECK-NEXT:            <key>col</key><integer>4</integer>
>  // CHECK-NEXT:            <key>file</key><integer>0</integer>
>  // CHECK-NEXT:           </dict>
>  // CHECK-NEXT:           <dict>
> -// CHECK-NEXT:            <key>line</key><integer>85</integer>
> +// CHECK-NEXT:            <key>line</key><integer>96</integer>
>  // CHECK-NEXT:            <key>col</key><integer>5</integer>
>  // CHECK-NEXT:            <key>file</key><integer>0</integer>
>  // CHECK-NEXT:           </dict>
> @@ -1843,12 +2074,12 @@
>  // CHECK-NEXT:         <key>end</key>
>  // CHECK-NEXT:          <array>
>  // CHECK-NEXT:           <dict>
> -// CHECK-NEXT:            <key>line</key><integer>89</integer>
> +// CHECK-NEXT:            <key>line</key><integer>100</integer>
>  // CHECK-NEXT:            <key>col</key><integer>3</integer>
>  // CHECK-NEXT:            <key>file</key><integer>0</integer>
>  // CHECK-NEXT:           </dict>
>  // CHECK-NEXT:           <dict>
> -// CHECK-NEXT:            <key>line</key><integer>89</integer>
> +// CHECK-NEXT:            <key>line</key><integer>100</integer>
>  // CHECK-NEXT:            <key>col</key><integer>3</integer>
>  // CHECK-NEXT:            <key>file</key><integer>0</integer>
>  // CHECK-NEXT:           </dict>
> @@ -1864,12 +2095,12 @@
>  // CHECK-NEXT:         <key>start</key>
>  // CHECK-NEXT:          <array>
>  // CHECK-NEXT:           <dict>
> -// CHECK-NEXT:            <key>line</key><integer>89</integer>
> +// CHECK-NEXT:            <key>line</key><integer>100</integer>
>  // CHECK-NEXT:            <key>col</key><integer>3</integer>
>  // CHECK-NEXT:            <key>file</key><integer>0</integer>
>  // CHECK-NEXT:           </dict>
>  // CHECK-NEXT:           <dict>
> -// CHECK-NEXT:            <key>line</key><integer>89</integer>
> +// CHECK-NEXT:            <key>line</key><integer>100</integer>
>  // CHECK-NEXT:            <key>col</key><integer>3</integer>
>  // CHECK-NEXT:            <key>file</key><integer>0</integer>
>  // CHECK-NEXT:           </dict>
> @@ -1877,12 +2108,12 @@
>  // CHECK-NEXT:         <key>end</key>
>  // CHECK-NEXT:          <array>
>  // CHECK-NEXT:           <dict>
> -// CHECK-NEXT:            <key>line</key><integer>84</integer>
> +// CHECK-NEXT:            <key>line</key><integer>95</integer>
>  // CHECK-NEXT:            <key>col</key><integer>3</integer>
>  // CHECK-NEXT:            <key>file</key><integer>0</integer>
>  // CHECK-NEXT:           </dict>
>  // CHECK-NEXT:           <dict>
> -// CHECK-NEXT:            <key>line</key><integer>84</integer>
> +// CHECK-NEXT:            <key>line</key><integer>95</integer>
>  // CHECK-NEXT:            <key>col</key><integer>5</integer>
>  // CHECK-NEXT:            <key>file</key><integer>0</integer>
>  // CHECK-NEXT:           </dict>
> @@ -1894,7 +2125,7 @@
>  // CHECK-NEXT:      <key>kind</key><string>event</string>
>  // CHECK-NEXT:      <key>location</key>
>  // CHECK-NEXT:      <dict>
> -// CHECK-NEXT:       <key>line</key><integer>84</integer>
> +// CHECK-NEXT:       <key>line</key><integer>95</integer>
>  // CHECK-NEXT:       <key>col</key><integer>3</integer>
>  // CHECK-NEXT:       <key>file</key><integer>0</integer>
>  // CHECK-NEXT:      </dict>
> @@ -1902,12 +2133,12 @@
>  // CHECK-NEXT:      <array>
>  // CHECK-NEXT:        <array>
>  // CHECK-NEXT:         <dict>
> -// CHECK-NEXT:          <key>line</key><integer>84</integer>
> +// CHECK-NEXT:          <key>line</key><integer>95</integer>
>  // CHECK-NEXT:          <key>col</key><integer>3</integer>
>  // CHECK-NEXT:          <key>file</key><integer>0</integer>
>  // CHECK-NEXT:         </dict>
>  // CHECK-NEXT:         <dict>
> -// CHECK-NEXT:          <key>line</key><integer>84</integer>
> +// CHECK-NEXT:          <key>line</key><integer>95</integer>
>  // CHECK-NEXT:          <key>col</key><integer>5</integer>
>  // CHECK-NEXT:          <key>file</key><integer>0</integer>
>  // CHECK-NEXT:         </dict>
> @@ -1927,12 +2158,12 @@
>  // CHECK-NEXT:         <key>start</key>
>  // CHECK-NEXT:          <array>
>  // CHECK-NEXT:           <dict>
> -// CHECK-NEXT:            <key>line</key><integer>84</integer>
> +// CHECK-NEXT:            <key>line</key><integer>95</integer>
>  // CHECK-NEXT:            <key>col</key><integer>3</integer>
>  // CHECK-NEXT:            <key>file</key><integer>0</integer>
>  // CHECK-NEXT:           </dict>
>  // CHECK-NEXT:           <dict>
> -// CHECK-NEXT:            <key>line</key><integer>84</integer>
> +// CHECK-NEXT:            <key>line</key><integer>95</integer>
>  // CHECK-NEXT:            <key>col</key><integer>5</integer>
>  // CHECK-NEXT:            <key>file</key><integer>0</integer>
>  // CHECK-NEXT:           </dict>
> @@ -1940,12 +2171,12 @@
>  // CHECK-NEXT:         <key>end</key>
>  // CHECK-NEXT:          <array>
>  // CHECK-NEXT:           <dict>
> -// CHECK-NEXT:            <key>line</key><integer>85</integer>
> +// CHECK-NEXT:            <key>line</key><integer>96</integer>
>  // CHECK-NEXT:            <key>col</key><integer>4</integer>
>  // CHECK-NEXT:            <key>file</key><integer>0</integer>
>  // CHECK-NEXT:           </dict>
>  // CHECK-NEXT:           <dict>
> -// CHECK-NEXT:            <key>line</key><integer>85</integer>
> +// CHECK-NEXT:            <key>line</key><integer>96</integer>
>  // CHECK-NEXT:            <key>col</key><integer>5</integer>
>  // CHECK-NEXT:            <key>file</key><integer>0</integer>
>  // CHECK-NEXT:           </dict>
> @@ -1961,12 +2192,12 @@
>  // CHECK-NEXT:         <key>start</key>
>  // CHECK-NEXT:          <array>
>  // CHECK-NEXT:           <dict>
> -// CHECK-NEXT:            <key>line</key><integer>85</integer>
> +// CHECK-NEXT:            <key>line</key><integer>96</integer>
>  // CHECK-NEXT:            <key>col</key><integer>4</integer>
>  // CHECK-NEXT:            <key>file</key><integer>0</integer>
>  // CHECK-NEXT:           </dict>
>  // CHECK-NEXT:           <dict>
> -// CHECK-NEXT:            <key>line</key><integer>85</integer>
> +// CHECK-NEXT:            <key>line</key><integer>96</integer>
>  // CHECK-NEXT:            <key>col</key><integer>5</integer>
>  // CHECK-NEXT:            <key>file</key><integer>0</integer>
>  // CHECK-NEXT:           </dict>
> @@ -1974,12 +2205,12 @@
>  // CHECK-NEXT:         <key>end</key>
>  // CHECK-NEXT:          <array>
>  // CHECK-NEXT:           <dict>
> -// CHECK-NEXT:            <key>line</key><integer>86</integer>
> +// CHECK-NEXT:            <key>line</key><integer>97</integer>
>  // CHECK-NEXT:            <key>col</key><integer>5</integer>
>  // CHECK-NEXT:            <key>file</key><integer>0</integer>
>  // CHECK-NEXT:           </dict>
>  // CHECK-NEXT:           <dict>
> -// CHECK-NEXT:            <key>line</key><integer>86</integer>
> +// CHECK-NEXT:            <key>line</key><integer>97</integer>
>  // CHECK-NEXT:            <key>col</key><integer>7</integer>
>  // CHECK-NEXT:            <key>file</key><integer>0</integer>
>  // CHECK-NEXT:           </dict>
> @@ -1991,7 +2222,7 @@
>  // CHECK-NEXT:      <key>kind</key><string>event</string>
>  // CHECK-NEXT:      <key>location</key>
>  // CHECK-NEXT:      <dict>
> -// CHECK-NEXT:       <key>line</key><integer>86</integer>
> +// CHECK-NEXT:       <key>line</key><integer>97</integer>
>  // CHECK-NEXT:       <key>col</key><integer>5</integer>
>  // CHECK-NEXT:       <key>file</key><integer>0</integer>
>  // CHECK-NEXT:      </dict>
> @@ -1999,12 +2230,12 @@
>  // CHECK-NEXT:      <array>
>  // CHECK-NEXT:        <array>
>  // CHECK-NEXT:         <dict>
> -// CHECK-NEXT:          <key>line</key><integer>86</integer>
> +// CHECK-NEXT:          <key>line</key><integer>97</integer>
>  // CHECK-NEXT:          <key>col</key><integer>5</integer>
>  // CHECK-NEXT:          <key>file</key><integer>0</integer>
>  // CHECK-NEXT:         </dict>
>  // CHECK-NEXT:         <dict>
> -// CHECK-NEXT:          <key>line</key><integer>86</integer>
> +// CHECK-NEXT:          <key>line</key><integer>97</integer>
>  // CHECK-NEXT:          <key>col</key><integer>10</integer>
>  // CHECK-NEXT:          <key>file</key><integer>0</integer>
>  // CHECK-NEXT:         </dict>
> @@ -2024,12 +2255,12 @@
>  // CHECK-NEXT:         <key>start</key>
>  // CHECK-NEXT:          <array>
>  // CHECK-NEXT:           <dict>
> -// CHECK-NEXT:            <key>line</key><integer>86</integer>
> +// CHECK-NEXT:            <key>line</key><integer>97</integer>
>  // CHECK-NEXT:            <key>col</key><integer>5</integer>
>  // CHECK-NEXT:            <key>file</key><integer>0</integer>
>  // CHECK-NEXT:           </dict>
>  // CHECK-NEXT:           <dict>
> -// CHECK-NEXT:            <key>line</key><integer>86</integer>
> +// CHECK-NEXT:            <key>line</key><integer>97</integer>
>  // CHECK-NEXT:            <key>col</key><integer>7</integer>
>  // CHECK-NEXT:            <key>file</key><integer>0</integer>
>  // CHECK-NEXT:           </dict>
> @@ -2037,12 +2268,12 @@
>  // CHECK-NEXT:         <key>end</key>
>  // CHECK-NEXT:          <array>
>  // CHECK-NEXT:           <dict>
> -// CHECK-NEXT:            <key>line</key><integer>87</integer>
> +// CHECK-NEXT:            <key>line</key><integer>98</integer>
>  // CHECK-NEXT:            <key>col</key><integer>5</integer>
>  // CHECK-NEXT:            <key>file</key><integer>0</integer>
>  // CHECK-NEXT:           </dict>
>  // CHECK-NEXT:           <dict>
> -// CHECK-NEXT:            <key>line</key><integer>87</integer>
> +// CHECK-NEXT:            <key>line</key><integer>98</integer>
>  // CHECK-NEXT:            <key>col</key><integer>5</integer>
>  // CHECK-NEXT:            <key>file</key><integer>0</integer>
>  // CHECK-NEXT:           </dict>
> @@ -2054,7 +2285,7 @@
>  // CHECK-NEXT:      <key>kind</key><string>event</string>
>  // CHECK-NEXT:      <key>location</key>
>  // CHECK-NEXT:      <dict>
> -// CHECK-NEXT:       <key>line</key><integer>87</integer>
> +// CHECK-NEXT:       <key>line</key><integer>98</integer>
>  // CHECK-NEXT:       <key>col</key><integer>5</integer>
>  // CHECK-NEXT:       <key>file</key><integer>0</integer>
>  // CHECK-NEXT:      </dict>
> @@ -2062,12 +2293,12 @@
>  // CHECK-NEXT:      <array>
>  // CHECK-NEXT:        <array>
>  // CHECK-NEXT:         <dict>
> -// CHECK-NEXT:          <key>line</key><integer>87</integer>
> +// CHECK-NEXT:          <key>line</key><integer>98</integer>
>  // CHECK-NEXT:          <key>col</key><integer>6</integer>
>  // CHECK-NEXT:          <key>file</key><integer>0</integer>
>  // CHECK-NEXT:         </dict>
>  // CHECK-NEXT:         <dict>
> -// CHECK-NEXT:          <key>line</key><integer>87</integer>
> +// CHECK-NEXT:          <key>line</key><integer>98</integer>
>  // CHECK-NEXT:          <key>col</key><integer>6</integer>
>  // CHECK-NEXT:          <key>file</key><integer>0</integer>
>  // CHECK-NEXT:         </dict>
> @@ -2088,7 +2319,7 @@
>  // CHECK-NEXT:   <key>issue_hash</key><integer>4</integer>
>  // CHECK-NEXT:   <key>location</key>
>  // CHECK-NEXT:   <dict>
> -// CHECK-NEXT:    <key>line</key><integer>87</integer>
> +// CHECK-NEXT:    <key>line</key><integer>98</integer>
>  // CHECK-NEXT:    <key>col</key><integer>5</integer>
>  // CHECK-NEXT:    <key>file</key><integer>0</integer>
>  // CHECK-NEXT:   </dict>
>
>
> _______________________________________________
> cfe-commits mailing list
> cfe-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
-------------- next part --------------
A non-text attachment was scrubbed...
Name: p.zip
Type: application/zip
Size: 6748 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20121006/95181218/attachment.zip>


More information about the cfe-commits mailing list