[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