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 <[email protected]> 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 <[email protected]>: >> 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 >> [email protected] >> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits > <p.zip> _______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
