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

Jordan Rose jordan_rose at apple.com
Fri Oct 5 19:02:04 PDT 2012


Yeah, I just now figured out what I did wrong (same as last time). Thanks for the ping.

Jordan


On Oct 5, 2012, at 18:43 , NAKAMURA Takumi <geek4civic at gmail.com> wrote:

> 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
> <p.zip>





More information about the cfe-commits mailing list