[cfe-commits] r153010 - in /cfe/trunk: lib/StaticAnalyzer/Checkers/MallocChecker.cpp test/Analysis/malloc-plist.c

Jordan Rose jediknil at belkadan.com
Sun Mar 18 11:33:56 PDT 2012


Hm. I looked at first to see if there was an easy way to reorder the visitors, but ImmutableList makes that a bit annoying. And I didn't want to walk the graph more times than we had to. On the other hand, since this is a leak-only problem, we /could/ make it part of getAllocationSite(), which is already following the ExplodedNode predecessor chain. But I like the idea that checker visitors can make symbols interesting during their node walk.

Because visitors are uniqued by the bug report, we're not duplicating work or anything by registering the condition visitor twice. I think this still represents a net improvement over the regression we had before, so I'd rather not revert the change. But I'll look into how to make it so that checkers don't have to think about this.

Possibilities:
- Store the generic visitors (added by BugReporter) separately from the visitors added by the checkers, and run them second.
- Add the generic visitors unconditionally when BugReports are created. Since ConditionBRVisitor and NilReceiverVisitor don't have state, we could just have a cached instance of each, saving allocation costs.
- Change the visitor data structure to not be an ImmutableList, and require that visitors not add other visitors once the report has started. NilReceiverBRVisitor relies on this, though.

I'm leaning towards the second one right now. Thoughts?
Jordy


On Mar 18, 2012, at 8:47, Anna Zaks wrote:

> Jordy,
> 
> I do not think the hack of adding Condition Visitor inside the Malloc Checker is the right way to go. 
> 
> One possibility is to add the symbol when the BugReport is created, before the visitor is called (that's where the other interesting symbol is added). Finding the symbol can be similar to 'getAllocationSite()'.
> 
> Another possibility is to experiment with reordering the visitors so that the condition visitor would be called after the custom ones. That might be prohibitive due to other issues, I am not sure... If this does work, it would provide a nice general solution - checker visitors will be able to add interesting symbols, which would get picked up by the general purpose visitors.
> 
> Anna.
> On Mar 18, 2012, at 12:43 AM, Jordy Rose wrote:
> 
>> Author: jrose
>> Date: Sun Mar 18 02:43:35 2012
>> New Revision: 153010
>> 
>> URL: http://llvm.org/viewvc/llvm-project?rev=153010&view=rev
>> Log:
>> [analyzer] Mark a failed-realloc's result as an interesting symbol between the realloc call and the null check, so we get nicer path notes. Fixes a regression introduced by the diagnostic pruning added in r152361.
>> 
>> This is accomplished by calling markInteresting /during/ path diagnostic generation, and as such relies on deterministic ordering of BugReporterVisitors -- namely, that BugReporterVisitors are run in /reverse/ order from how they are added. (Right now that's a consequence of storing visitors in an ImmutableList, where new items are added to the front.) It's a little hacky, but it works for now.
>> 
>> I think this is the best we can do without storing the relation between the old and new symbols, and that would be a hit whether or not there ends up being an error.
>> 
>> Modified:
>>    cfe/trunk/lib/StaticAnalyzer/Checkers/MallocChecker.cpp
>>    cfe/trunk/test/Analysis/malloc-plist.c
>> 
>> Modified: cfe/trunk/lib/StaticAnalyzer/Checkers/MallocChecker.cpp
>> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/StaticAnalyzer/Checkers/MallocChecker.cpp?rev=153010&r1=153009&r2=153010&view=diff
>> ==============================================================================
>> --- cfe/trunk/lib/StaticAnalyzer/Checkers/MallocChecker.cpp (original)
>> +++ cfe/trunk/lib/StaticAnalyzer/Checkers/MallocChecker.cpp Sun Mar 18 02:43:35 2012
>> @@ -846,6 +846,10 @@
>>   BugReport *R = new BugReport(*BT_Leak,
>>     "Memory is never released; potential memory leak", N, LocUsedForUniqueing);
>>   R->markInteresting(Sym);
>> +  // FIXME: This is a hack to make sure the MallocBugVisitor gets to look at
>> +  // the ExplodedNode chain first, in order to mark any failed realloc symbols
>> +  // as interesting for ConditionBRVisitor.
>> +  R->addVisitor(new ConditionBRVisitor());
>>   R->addVisitor(new MallocBugVisitor(Sym));
>>   C.EmitReport(R);
>> }
>> @@ -1260,13 +1264,31 @@
>>   return State;
>> }
>> 
>> +static SymbolRef findFailedReallocSymbol(ProgramStateRef currState,
>> +                                         ProgramStateRef prevState) {
>> +  ReallocMap currMap = currState->get<ReallocPairs>();
>> +  ReallocMap prevMap = prevState->get<ReallocPairs>();
>> +
>> +  for (ReallocMap::iterator I = prevMap.begin(), E = prevMap.end();
>> +       I != E; ++I) {
>> +    SymbolRef sym = I.getKey();
>> +    if (!currMap.lookup(sym))
>> +      return sym;
>> +  }
>> +
>> +  return NULL;
>> +}
>> +
>> PathDiagnosticPiece *
>> MallocChecker::MallocBugVisitor::VisitNode(const ExplodedNode *N,
>>                                            const ExplodedNode *PrevN,
>>                                            BugReporterContext &BRC,
>>                                            BugReport &BR) {
>> -  const RefState *RS = N->getState()->get<RegionState>(Sym);
>> -  const RefState *RSPrev = PrevN->getState()->get<RegionState>(Sym);
>> +  ProgramStateRef state = N->getState();
>> +  ProgramStateRef statePrev = PrevN->getState();
>> +
>> +  const RefState *RS = state->get<RegionState>(Sym);
>> +  const RefState *RSPrev = statePrev->get<RegionState>(Sym);
>>   if (!RS && !RSPrev)
>>     return 0;
>> 
>> @@ -1288,7 +1310,6 @@
>>     return 0;
>> 
>>   // Find out if this is an interesting point and what is the kind.
>> -  // TODO: Replace 'callee' by the function name.
>>   if (Mode == Normal) {
>>     if (isAllocated(RS, RSPrev, S)) {
>>       Msg = "Memory is allocated";
>> @@ -1303,6 +1324,9 @@
>>       Msg = "Reallocation failed";
>>       StackHint = new StackHintGeneratorForReallocationFailed(Sym,
>>                                                        "Reallocation failed");
>> +
>> +      if (SymbolRef sym = findFailedReallocSymbol(state, statePrev))
>> +        BR.markInteresting(sym);
>>     }
>> 
>>   // We are in a special mode if a reallocation failed later in the path.
>> 
>> Modified: cfe/trunk/test/Analysis/malloc-plist.c
>> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Analysis/malloc-plist.c?rev=153010&r1=153009&r2=153010&view=diff
>> ==============================================================================
>> --- cfe/trunk/test/Analysis/malloc-plist.c (original)
>> +++ cfe/trunk/test/Analysis/malloc-plist.c Sun Mar 18 02:43:35 2012
>> @@ -24,8 +24,6 @@
>>     char * buf = malloc(100);
>>     char * tmp;
>>     tmp = (char*)realloc(buf, 0x1000000);
>> -    // FIXME: we need a diagnostic for the null check.
>> -    // This requires propagating "interesting" for 'tmp'.
>>     if (!tmp) {
>>         return;// expected-warning {{leak}}
>>     }
>> @@ -647,13 +645,47 @@
>> // CHECK:         <key>end</key>
>> // CHECK:          <array>
>> // CHECK:           <dict>
>> -// CHECK:            <key>line</key><integer>29</integer>
>> +// CHECK:            <key>line</key><integer>27</integer>
>> // CHECK:            <key>col</key><integer>5</integer>
>> // CHECK:            <key>file</key><integer>0</integer>
>> // CHECK:           </dict>
>> // CHECK:           <dict>
>> -// CHECK:            <key>line</key><integer>29</integer>
>> -// CHECK:            <key>col</key><integer>6</integer>
>> +// CHECK:            <key>line</key><integer>27</integer>
>> +// CHECK:            <key>col</key><integer>5</integer>
>> +// CHECK:            <key>file</key><integer>0</integer>
>> +// CHECK:           </dict>
>> +// CHECK:          </array>
>> +// CHECK:        </dict>
>> +// CHECK:       </array>
>> +// CHECK:     </dict>
>> +// CHECK:     <dict>
>> +// CHECK:      <key>kind</key><string>control</string>
>> +// CHECK:      <key>edges</key>
>> +// CHECK:       <array>
>> +// CHECK:        <dict>
>> +// CHECK:         <key>start</key>
>> +// CHECK:          <array>
>> +// CHECK:           <dict>
>> +// CHECK:            <key>line</key><integer>27</integer>
>> +// CHECK:            <key>col</key><integer>5</integer>
>> +// CHECK:            <key>file</key><integer>0</integer>
>> +// CHECK:           </dict>
>> +// CHECK:           <dict>
>> +// CHECK:            <key>line</key><integer>27</integer>
>> +// CHECK:            <key>col</key><integer>5</integer>
>> +// CHECK:            <key>file</key><integer>0</integer>
>> +// CHECK:           </dict>
>> +// CHECK:          </array>
>> +// CHECK:         <key>end</key>
>> +// CHECK:          <array>
>> +// CHECK:           <dict>
>> +// CHECK:            <key>line</key><integer>27</integer>
>> +// CHECK:            <key>col</key><integer>9</integer>
>> +// CHECK:            <key>file</key><integer>0</integer>
>> +// CHECK:           </dict>
>> +// CHECK:           <dict>
>> +// CHECK:            <key>line</key><integer>27</integer>
>> +// CHECK:            <key>col</key><integer>12</integer>
>> // CHECK:            <key>file</key><integer>0</integer>
>> // CHECK:           </dict>
>> // CHECK:          </array>
>> @@ -664,30 +696,30 @@
>> // CHECK:      <key>kind</key><string>event</string>
>> // CHECK:      <key>location</key>
>> // CHECK:      <dict>
>> -// CHECK:       <key>line</key><integer>29</integer>
>> -// CHECK:       <key>col</key><integer>5</integer>
>> +// CHECK:       <key>line</key><integer>27</integer>
>> +// CHECK:       <key>col</key><integer>9</integer>
>> // CHECK:       <key>file</key><integer>0</integer>
>> // CHECK:      </dict>
>> // CHECK:      <key>ranges</key>
>> // CHECK:      <array>
>> // CHECK:        <array>
>> // CHECK:         <dict>
>> -// CHECK:          <key>line</key><integer>29</integer>
>> -// CHECK:          <key>col</key><integer>5</integer>
>> +// CHECK:          <key>line</key><integer>27</integer>
>> +// CHECK:          <key>col</key><integer>9</integer>
>> // CHECK:          <key>file</key><integer>0</integer>
>> // CHECK:         </dict>
>> // CHECK:         <dict>
>> -// CHECK:          <key>line</key><integer>29</integer>
>> -// CHECK:          <key>col</key><integer>6</integer>
>> +// CHECK:          <key>line</key><integer>27</integer>
>> +// CHECK:          <key>col</key><integer>12</integer>
>> // CHECK:          <key>file</key><integer>0</integer>
>> // CHECK:         </dict>
>> // CHECK:        </array>
>> // CHECK:      </array>
>> // CHECK:      <key>depth</key><integer>0</integer>
>> // CHECK:      <key>extended_message</key>
>> -// CHECK:      <string>Reallocation failed</string>
>> +// CHECK:      <string>Assuming 'tmp' is null</string>
>> // CHECK:      <key>message</key>
>> -// CHECK: <string>Reallocation failed</string>
>> +// CHECK: <string>Assuming 'tmp' is null</string>
>> // CHECK:     </dict>
>> // CHECK:     <dict>
>> // CHECK:      <key>kind</key><string>control</string>
>> @@ -697,26 +729,26 @@
>> // CHECK:         <key>start</key>
>> // CHECK:          <array>
>> // CHECK:           <dict>
>> -// CHECK:            <key>line</key><integer>29</integer>
>> -// CHECK:            <key>col</key><integer>5</integer>
>> +// CHECK:            <key>line</key><integer>27</integer>
>> +// CHECK:            <key>col</key><integer>9</integer>
>> // CHECK:            <key>file</key><integer>0</integer>
>> // CHECK:           </dict>
>> // CHECK:           <dict>
>> -// CHECK:            <key>line</key><integer>29</integer>
>> -// CHECK:            <key>col</key><integer>6</integer>
>> +// CHECK:            <key>line</key><integer>27</integer>
>> +// CHECK:            <key>col</key><integer>12</integer>
>> // CHECK:            <key>file</key><integer>0</integer>
>> // CHECK:           </dict>
>> // CHECK:          </array>
>> // CHECK:         <key>end</key>
>> // CHECK:          <array>
>> // CHECK:           <dict>
>> -// CHECK:            <key>line</key><integer>29</integer>
>> -// CHECK:            <key>col</key><integer>9</integer>
>> +// CHECK:            <key>line</key><integer>27</integer>
>> +// CHECK:            <key>col</key><integer>5</integer>
>> // CHECK:            <key>file</key><integer>0</integer>
>> // CHECK:           </dict>
>> // CHECK:           <dict>
>> -// CHECK:            <key>line</key><integer>29</integer>
>> -// CHECK:            <key>col</key><integer>12</integer>
>> +// CHECK:            <key>line</key><integer>27</integer>
>> +// CHECK:            <key>col</key><integer>6</integer>
>> // CHECK:            <key>file</key><integer>0</integer>
>> // CHECK:           </dict>
>> // CHECK:          </array>
>> @@ -724,6 +756,35 @@
>> // CHECK:       </array>
>> // CHECK:     </dict>
>> // CHECK:     <dict>
>> +// CHECK:      <key>kind</key><string>event</string>
>> +// CHECK:      <key>location</key>
>> +// CHECK:      <dict>
>> +// CHECK:       <key>line</key><integer>27</integer>
>> +// CHECK:       <key>col</key><integer>5</integer>
>> +// CHECK:       <key>file</key><integer>0</integer>
>> +// CHECK:      </dict>
>> +// CHECK:      <key>ranges</key>
>> +// CHECK:      <array>
>> +// CHECK:        <array>
>> +// CHECK:         <dict>
>> +// CHECK:          <key>line</key><integer>27</integer>
>> +// CHECK:          <key>col</key><integer>5</integer>
>> +// CHECK:          <key>file</key><integer>0</integer>
>> +// CHECK:         </dict>
>> +// CHECK:         <dict>
>> +// CHECK:          <key>line</key><integer>27</integer>
>> +// CHECK:          <key>col</key><integer>6</integer>
>> +// CHECK:          <key>file</key><integer>0</integer>
>> +// CHECK:         </dict>
>> +// CHECK:        </array>
>> +// CHECK:      </array>
>> +// CHECK:      <key>depth</key><integer>0</integer>
>> +// CHECK:      <key>extended_message</key>
>> +// CHECK:      <string>Reallocation failed</string>
>> +// CHECK:      <key>message</key>
>> +// CHECK: <string>Reallocation failed</string>
>> +// CHECK:     </dict>
>> +// CHECK:     <dict>
>> // CHECK:      <key>kind</key><string>control</string>
>> // CHECK:      <key>edges</key>
>> // CHECK:       <array>
>> @@ -731,25 +792,25 @@
>> // CHECK:         <key>start</key>
>> // CHECK:          <array>
>> // CHECK:           <dict>
>> -// CHECK:            <key>line</key><integer>29</integer>
>> -// CHECK:            <key>col</key><integer>9</integer>
>> +// CHECK:            <key>line</key><integer>27</integer>
>> +// CHECK:            <key>col</key><integer>5</integer>
>> // CHECK:            <key>file</key><integer>0</integer>
>> // CHECK:           </dict>
>> // CHECK:           <dict>
>> -// CHECK:            <key>line</key><integer>29</integer>
>> -// CHECK:            <key>col</key><integer>12</integer>
>> +// CHECK:            <key>line</key><integer>27</integer>
>> +// CHECK:            <key>col</key><integer>6</integer>
>> // CHECK:            <key>file</key><integer>0</integer>
>> // CHECK:           </dict>
>> // CHECK:          </array>
>> // CHECK:         <key>end</key>
>> // CHECK:          <array>
>> // CHECK:           <dict>
>> -// CHECK:            <key>line</key><integer>30</integer>
>> +// CHECK:            <key>line</key><integer>28</integer>
>> // CHECK:            <key>col</key><integer>9</integer>
>> // CHECK:            <key>file</key><integer>0</integer>
>> // CHECK:           </dict>
>> // CHECK:           <dict>
>> -// CHECK:            <key>line</key><integer>30</integer>
>> +// CHECK:            <key>line</key><integer>28</integer>
>> // CHECK:            <key>col</key><integer>14</integer>
>> // CHECK:            <key>file</key><integer>0</integer>
>> // CHECK:           </dict>
>> @@ -761,7 +822,7 @@
>> // CHECK:      <key>kind</key><string>event</string>
>> // CHECK:      <key>location</key>
>> // CHECK:      <dict>
>> -// CHECK:       <key>line</key><integer>30</integer>
>> +// CHECK:       <key>line</key><integer>28</integer>
>> // CHECK:       <key>col</key><integer>9</integer>
>> // CHECK:       <key>file</key><integer>0</integer>
>> // CHECK:      </dict>
>> @@ -769,12 +830,12 @@
>> // CHECK:      <array>
>> // CHECK:        <array>
>> // CHECK:         <dict>
>> -// CHECK:          <key>line</key><integer>30</integer>
>> +// CHECK:          <key>line</key><integer>28</integer>
>> // CHECK:          <key>col</key><integer>9</integer>
>> // CHECK:          <key>file</key><integer>0</integer>
>> // CHECK:         </dict>
>> // CHECK:         <dict>
>> -// CHECK:          <key>line</key><integer>30</integer>
>> +// CHECK:          <key>line</key><integer>28</integer>
>> // CHECK:          <key>col</key><integer>14</integer>
>> // CHECK:          <key>file</key><integer>0</integer>
>> // CHECK:         </dict>
>> @@ -792,7 +853,7 @@
>> // CHECK:    <key>type</key><string>Memory leak</string>
>> // CHECK:   <key>location</key>
>> // CHECK:   <dict>
>> -// CHECK:    <key>line</key><integer>30</integer>
>> +// CHECK:    <key>line</key><integer>28</integer>
>> // CHECK:    <key>col</key><integer>9</integer>
>> // CHECK:    <key>file</key><integer>0</integer>
>> // CHECK:   </dict>
>> @@ -808,12 +869,12 @@
>> // CHECK:         <key>start</key>
>> // CHECK:          <array>
>> // CHECK:           <dict>
>> -// CHECK:            <key>line</key><integer>45</integer>
>> +// CHECK:            <key>line</key><integer>43</integer>
>> // CHECK:            <key>col</key><integer>3</integer>
>> // CHECK:            <key>file</key><integer>0</integer>
>> // CHECK:           </dict>
>> // CHECK:           <dict>
>> -// CHECK:            <key>line</key><integer>45</integer>
>> +// CHECK:            <key>line</key><integer>43</integer>
>> // CHECK:            <key>col</key><integer>3</integer>
>> // CHECK:            <key>file</key><integer>0</integer>
>> // CHECK:           </dict>
>> @@ -821,12 +882,12 @@
>> // CHECK:         <key>end</key>
>> // CHECK:          <array>
>> // CHECK:           <dict>
>> -// CHECK:            <key>line</key><integer>45</integer>
>> +// CHECK:            <key>line</key><integer>43</integer>
>> // CHECK:            <key>col</key><integer>15</integer>
>> // CHECK:            <key>file</key><integer>0</integer>
>> // CHECK:           </dict>
>> // CHECK:           <dict>
>> -// CHECK:            <key>line</key><integer>45</integer>
>> +// CHECK:            <key>line</key><integer>43</integer>
>> // CHECK:            <key>col</key><integer>15</integer>
>> // CHECK:            <key>file</key><integer>0</integer>
>> // CHECK:           </dict>
>> @@ -838,7 +899,7 @@
>> // CHECK:      <key>kind</key><string>event</string>
>> // CHECK:      <key>location</key>
>> // CHECK:      <dict>
>> -// CHECK:       <key>line</key><integer>45</integer>
>> +// CHECK:       <key>line</key><integer>43</integer>
>> // CHECK:       <key>col</key><integer>15</integer>
>> // CHECK:       <key>file</key><integer>0</integer>
>> // CHECK:      </dict>
>> @@ -846,12 +907,12 @@
>> // CHECK:      <array>
>> // CHECK:        <array>
>> // CHECK:         <dict>
>> -// CHECK:          <key>line</key><integer>45</integer>
>> +// CHECK:          <key>line</key><integer>43</integer>
>> // CHECK:          <key>col</key><integer>15</integer>
>> // CHECK:          <key>file</key><integer>0</integer>
>> // CHECK:         </dict>
>> // CHECK:         <dict>
>> -// CHECK:          <key>line</key><integer>45</integer>
>> +// CHECK:          <key>line</key><integer>43</integer>
>> // CHECK:          <key>col</key><integer>23</integer>
>> // CHECK:          <key>file</key><integer>0</integer>
>> // CHECK:         </dict>
>> @@ -867,7 +928,7 @@
>> // CHECK:      <key>kind</key><string>event</string>
>> // CHECK:      <key>location</key>
>> // CHECK:      <dict>
>> -// CHECK:       <key>line</key><integer>36</integer>
>> +// CHECK:       <key>line</key><integer>34</integer>
>> // CHECK:       <key>col</key><integer>1</integer>
>> // CHECK:       <key>file</key><integer>0</integer>
>> // CHECK:      </dict>
>> @@ -885,12 +946,12 @@
>> // CHECK:         <key>start</key>
>> // CHECK:          <array>
>> // CHECK:           <dict>
>> -// CHECK:            <key>line</key><integer>36</integer>
>> +// CHECK:            <key>line</key><integer>34</integer>
>> // CHECK:            <key>col</key><integer>1</integer>
>> // CHECK:            <key>file</key><integer>0</integer>
>> // CHECK:           </dict>
>> // CHECK:           <dict>
>> -// CHECK:            <key>line</key><integer>36</integer>
>> +// CHECK:            <key>line</key><integer>34</integer>
>> // CHECK:            <key>col</key><integer>1</integer>
>> // CHECK:            <key>file</key><integer>0</integer>
>> // CHECK:           </dict>
>> @@ -898,12 +959,12 @@
>> // CHECK:         <key>end</key>
>> // CHECK:          <array>
>> // CHECK:           <dict>
>> -// CHECK:            <key>line</key><integer>37</integer>
>> +// CHECK:            <key>line</key><integer>35</integer>
>> // CHECK:            <key>col</key><integer>3</integer>
>> // CHECK:            <key>file</key><integer>0</integer>
>> // CHECK:           </dict>
>> // CHECK:           <dict>
>> -// CHECK:            <key>line</key><integer>37</integer>
>> +// CHECK:            <key>line</key><integer>35</integer>
>> // CHECK:            <key>col</key><integer>3</integer>
>> // CHECK:            <key>file</key><integer>0</integer>
>> // CHECK:           </dict>
>> @@ -919,12 +980,12 @@
>> // CHECK:         <key>start</key>
>> // CHECK:          <array>
>> // CHECK:           <dict>
>> -// CHECK:            <key>line</key><integer>37</integer>
>> +// CHECK:            <key>line</key><integer>35</integer>
>> // CHECK:            <key>col</key><integer>3</integer>
>> // CHECK:            <key>file</key><integer>0</integer>
>> // CHECK:           </dict>
>> // CHECK:           <dict>
>> -// CHECK:            <key>line</key><integer>37</integer>
>> +// CHECK:            <key>line</key><integer>35</integer>
>> // CHECK:            <key>col</key><integer>3</integer>
>> // CHECK:            <key>file</key><integer>0</integer>
>> // CHECK:           </dict>
>> @@ -932,12 +993,12 @@
>> // CHECK:         <key>end</key>
>> // CHECK:          <array>
>> // CHECK:           <dict>
>> -// CHECK:            <key>line</key><integer>37</integer>
>> +// CHECK:            <key>line</key><integer>35</integer>
>> // CHECK:            <key>col</key><integer>13</integer>
>> // CHECK:            <key>file</key><integer>0</integer>
>> // CHECK:           </dict>
>> // CHECK:           <dict>
>> -// CHECK:            <key>line</key><integer>37</integer>
>> +// CHECK:            <key>line</key><integer>35</integer>
>> // CHECK:            <key>col</key><integer>23</integer>
>> // CHECK:            <key>file</key><integer>0</integer>
>> // CHECK:           </dict>
>> @@ -949,7 +1010,7 @@
>> // CHECK:      <key>kind</key><string>event</string>
>> // CHECK:      <key>location</key>
>> // CHECK:      <dict>
>> -// CHECK:       <key>line</key><integer>37</integer>
>> +// CHECK:       <key>line</key><integer>35</integer>
>> // CHECK:       <key>col</key><integer>13</integer>
>> // CHECK:       <key>file</key><integer>0</integer>
>> // CHECK:      </dict>
>> @@ -957,12 +1018,12 @@
>> // CHECK:      <array>
>> // CHECK:        <array>
>> // CHECK:         <dict>
>> -// CHECK:          <key>line</key><integer>37</integer>
>> +// CHECK:          <key>line</key><integer>35</integer>
>> // CHECK:          <key>col</key><integer>13</integer>
>> // CHECK:          <key>file</key><integer>0</integer>
>> // CHECK:         </dict>
>> // CHECK:         <dict>
>> -// CHECK:          <key>line</key><integer>37</integer>
>> +// CHECK:          <key>line</key><integer>35</integer>
>> // CHECK:          <key>col</key><integer>23</integer>
>> // CHECK:          <key>file</key><integer>0</integer>
>> // CHECK:         </dict>
>> @@ -982,12 +1043,12 @@
>> // CHECK:         <key>start</key>
>> // CHECK:          <array>
>> // CHECK:           <dict>
>> -// CHECK:            <key>line</key><integer>37</integer>
>> +// CHECK:            <key>line</key><integer>35</integer>
>> // CHECK:            <key>col</key><integer>13</integer>
>> // CHECK:            <key>file</key><integer>0</integer>
>> // CHECK:           </dict>
>> // CHECK:           <dict>
>> -// CHECK:            <key>line</key><integer>37</integer>
>> +// CHECK:            <key>line</key><integer>35</integer>
>> // CHECK:            <key>col</key><integer>23</integer>
>> // CHECK:            <key>file</key><integer>0</integer>
>> // CHECK:           </dict>
>> @@ -995,12 +1056,12 @@
>> // CHECK:         <key>end</key>
>> // CHECK:          <array>
>> // CHECK:           <dict>
>> -// CHECK:            <key>line</key><integer>39</integer>
>> +// CHECK:            <key>line</key><integer>37</integer>
>> // CHECK:            <key>col</key><integer>3</integer>
>> // CHECK:            <key>file</key><integer>0</integer>
>> // CHECK:           </dict>
>> // CHECK:           <dict>
>> -// CHECK:            <key>line</key><integer>39</integer>
>> +// CHECK:            <key>line</key><integer>37</integer>
>> // CHECK:            <key>col</key><integer>3</integer>
>> // CHECK:            <key>file</key><integer>0</integer>
>> // CHECK:           </dict>
>> @@ -1016,12 +1077,12 @@
>> // CHECK:         <key>start</key>
>> // CHECK:          <array>
>> // CHECK:           <dict>
>> -// CHECK:            <key>line</key><integer>39</integer>
>> +// CHECK:            <key>line</key><integer>37</integer>
>> // CHECK:            <key>col</key><integer>3</integer>
>> // CHECK:            <key>file</key><integer>0</integer>
>> // CHECK:           </dict>
>> // CHECK:           <dict>
>> -// CHECK:            <key>line</key><integer>39</integer>
>> +// CHECK:            <key>line</key><integer>37</integer>
>> // CHECK:            <key>col</key><integer>3</integer>
>> // CHECK:            <key>file</key><integer>0</integer>
>> // CHECK:           </dict>
>> @@ -1029,12 +1090,12 @@
>> // CHECK:         <key>end</key>
>> // CHECK:          <array>
>> // CHECK:           <dict>
>> -// CHECK:            <key>line</key><integer>39</integer>
>> +// CHECK:            <key>line</key><integer>37</integer>
>> // CHECK:            <key>col</key><integer>7</integer>
>> // CHECK:            <key>file</key><integer>0</integer>
>> // CHECK:           </dict>
>> // CHECK:           <dict>
>> -// CHECK:            <key>line</key><integer>39</integer>
>> +// CHECK:            <key>line</key><integer>37</integer>
>> // CHECK:            <key>col</key><integer>7</integer>
>> // CHECK:            <key>file</key><integer>0</integer>
>> // CHECK:           </dict>
>> @@ -1046,7 +1107,7 @@
>> // CHECK:      <key>kind</key><string>event</string>
>> // CHECK:      <key>location</key>
>> // CHECK:      <dict>
>> -// CHECK:       <key>line</key><integer>39</integer>
>> +// CHECK:       <key>line</key><integer>37</integer>
>> // CHECK:       <key>col</key><integer>7</integer>
>> // CHECK:       <key>file</key><integer>0</integer>
>> // CHECK:      </dict>
>> @@ -1054,12 +1115,12 @@
>> // CHECK:      <array>
>> // CHECK:        <array>
>> // CHECK:         <dict>
>> -// CHECK:          <key>line</key><integer>39</integer>
>> +// CHECK:          <key>line</key><integer>37</integer>
>> // CHECK:          <key>col</key><integer>7</integer>
>> // CHECK:          <key>file</key><integer>0</integer>
>> // CHECK:         </dict>
>> // CHECK:         <dict>
>> -// CHECK:          <key>line</key><integer>39</integer>
>> +// CHECK:          <key>line</key><integer>37</integer>
>> // CHECK:          <key>col</key><integer>7</integer>
>> // CHECK:          <key>file</key><integer>0</integer>
>> // CHECK:         </dict>
>> @@ -1079,12 +1140,12 @@
>> // CHECK:         <key>start</key>
>> // CHECK:          <array>
>> // CHECK:           <dict>
>> -// CHECK:            <key>line</key><integer>39</integer>
>> +// CHECK:            <key>line</key><integer>37</integer>
>> // CHECK:            <key>col</key><integer>7</integer>
>> // CHECK:            <key>file</key><integer>0</integer>
>> // CHECK:           </dict>
>> // CHECK:           <dict>
>> -// CHECK:            <key>line</key><integer>39</integer>
>> +// CHECK:            <key>line</key><integer>37</integer>
>> // CHECK:            <key>col</key><integer>7</integer>
>> // CHECK:            <key>file</key><integer>0</integer>
>> // CHECK:           </dict>
>> @@ -1092,12 +1153,12 @@
>> // CHECK:         <key>end</key>
>> // CHECK:          <array>
>> // CHECK:           <dict>
>> -// CHECK:            <key>line</key><integer>40</integer>
>> +// CHECK:            <key>line</key><integer>38</integer>
>> // CHECK:            <key>col</key><integer>5</integer>
>> // CHECK:            <key>file</key><integer>0</integer>
>> // CHECK:           </dict>
>> // CHECK:           <dict>
>> -// CHECK:            <key>line</key><integer>40</integer>
>> +// CHECK:            <key>line</key><integer>38</integer>
>> // CHECK:            <key>col</key><integer>5</integer>
>> // CHECK:            <key>file</key><integer>0</integer>
>> // CHECK:           </dict>
>> @@ -1109,7 +1170,7 @@
>> // CHECK:      <key>kind</key><string>event</string>
>> // CHECK:      <key>location</key>
>> // CHECK:      <dict>
>> -// CHECK:       <key>line</key><integer>45</integer>
>> +// CHECK:       <key>line</key><integer>43</integer>
>> // CHECK:       <key>col</key><integer>15</integer>
>> // CHECK:       <key>file</key><integer>0</integer>
>> // CHECK:      </dict>
>> @@ -1117,12 +1178,12 @@
>> // CHECK:      <array>
>> // CHECK:        <array>
>> // CHECK:         <dict>
>> -// CHECK:          <key>line</key><integer>45</integer>
>> +// CHECK:          <key>line</key><integer>43</integer>
>> // CHECK:          <key>col</key><integer>15</integer>
>> // CHECK:          <key>file</key><integer>0</integer>
>> // CHECK:         </dict>
>> // CHECK:         <dict>
>> -// CHECK:          <key>line</key><integer>45</integer>
>> +// CHECK:          <key>line</key><integer>43</integer>
>> // CHECK:          <key>col</key><integer>23</integer>
>> // CHECK:          <key>file</key><integer>0</integer>
>> // CHECK:         </dict>
>> @@ -1142,12 +1203,12 @@
>> // CHECK:         <key>start</key>
>> // CHECK:          <array>
>> // CHECK:           <dict>
>> -// CHECK:            <key>line</key><integer>45</integer>
>> +// CHECK:            <key>line</key><integer>43</integer>
>> // CHECK:            <key>col</key><integer>15</integer>
>> // CHECK:            <key>file</key><integer>0</integer>
>> // CHECK:           </dict>
>> // CHECK:           <dict>
>> -// CHECK:            <key>line</key><integer>45</integer>
>> +// CHECK:            <key>line</key><integer>43</integer>
>> // CHECK:            <key>col</key><integer>23</integer>
>> // CHECK:            <key>file</key><integer>0</integer>
>> // CHECK:           </dict>
>> @@ -1155,12 +1216,12 @@
>> // CHECK:         <key>end</key>
>> // CHECK:          <array>
>> // CHECK:           <dict>
>> -// CHECK:            <key>line</key><integer>47</integer>
>> +// CHECK:            <key>line</key><integer>45</integer>
>> // CHECK:            <key>col</key><integer>1</integer>
>> // CHECK:            <key>file</key><integer>0</integer>
>> // CHECK:           </dict>
>> // CHECK:           <dict>
>> -// CHECK:            <key>line</key><integer>47</integer>
>> +// CHECK:            <key>line</key><integer>45</integer>
>> // CHECK:            <key>col</key><integer>1</integer>
>> // CHECK:            <key>file</key><integer>0</integer>
>> // CHECK:           </dict>
>> @@ -1172,7 +1233,7 @@
>> // CHECK:      <key>kind</key><string>event</string>
>> // CHECK:      <key>location</key>
>> // CHECK:      <dict>
>> -// CHECK:       <key>line</key><integer>47</integer>
>> +// CHECK:       <key>line</key><integer>45</integer>
>> // CHECK:       <key>col</key><integer>1</integer>
>> // CHECK:       <key>file</key><integer>0</integer>
>> // CHECK:      </dict>
>> @@ -1188,7 +1249,7 @@
>> // CHECK:    <key>type</key><string>Memory leak</string>
>> // CHECK:   <key>location</key>
>> // CHECK:   <dict>
>> -// CHECK:    <key>line</key><integer>47</integer>
>> +// CHECK:    <key>line</key><integer>45</integer>
>> // CHECK:    <key>col</key><integer>1</integer>
>> // CHECK:    <key>file</key><integer>0</integer>
>> // CHECK:   </dict>
>> @@ -1204,12 +1265,12 @@
>> // CHECK:         <key>start</key>
>> // CHECK:          <array>
>> // CHECK:           <dict>
>> -// CHECK:            <key>line</key><integer>61</integer>
>> +// CHECK:            <key>line</key><integer>59</integer>
>> // CHECK:            <key>col</key><integer>5</integer>
>> // CHECK:            <key>file</key><integer>0</integer>
>> // CHECK:           </dict>
>> // CHECK:           <dict>
>> -// CHECK:            <key>line</key><integer>61</integer>
>> +// CHECK:            <key>line</key><integer>59</integer>
>> // CHECK:            <key>col</key><integer>5</integer>
>> // CHECK:            <key>file</key><integer>0</integer>
>> // CHECK:           </dict>
>> @@ -1217,12 +1278,12 @@
>> // CHECK:         <key>end</key>
>> // CHECK:          <array>
>> // CHECK:           <dict>
>> -// CHECK:            <key>line</key><integer>62</integer>
>> +// CHECK:            <key>line</key><integer>60</integer>
>> // CHECK:            <key>col</key><integer>5</integer>
>> // CHECK:            <key>file</key><integer>0</integer>
>> // CHECK:           </dict>
>> // CHECK:           <dict>
>> -// CHECK:            <key>line</key><integer>62</integer>
>> +// CHECK:            <key>line</key><integer>60</integer>
>> // CHECK:            <key>col</key><integer>5</integer>
>> // CHECK:            <key>file</key><integer>0</integer>
>> // CHECK:           </dict>
>> @@ -1234,7 +1295,7 @@
>> // CHECK:      <key>kind</key><string>event</string>
>> // CHECK:      <key>location</key>
>> // CHECK:      <dict>
>> -// CHECK:       <key>line</key><integer>62</integer>
>> +// CHECK:       <key>line</key><integer>60</integer>
>> // CHECK:       <key>col</key><integer>5</integer>
>> // CHECK:       <key>file</key><integer>0</integer>
>> // CHECK:      </dict>
>> @@ -1242,12 +1303,12 @@
>> // CHECK:      <array>
>> // CHECK:        <array>
>> // CHECK:         <dict>
>> -// CHECK:          <key>line</key><integer>62</integer>
>> +// CHECK:          <key>line</key><integer>60</integer>
>> // CHECK:          <key>col</key><integer>5</integer>
>> // CHECK:          <key>file</key><integer>0</integer>
>> // CHECK:         </dict>
>> // CHECK:         <dict>
>> -// CHECK:          <key>line</key><integer>62</integer>
>> +// CHECK:          <key>line</key><integer>60</integer>
>> // CHECK:          <key>col</key><integer>28</integer>
>> // CHECK:          <key>file</key><integer>0</integer>
>> // CHECK:         </dict>
>> @@ -1263,7 +1324,7 @@
>> // CHECK:      <key>kind</key><string>event</string>
>> // CHECK:      <key>location</key>
>> // CHECK:      <dict>
>> -// CHECK:       <key>line</key><integer>54</integer>
>> +// CHECK:       <key>line</key><integer>52</integer>
>> // CHECK:       <key>col</key><integer>1</integer>
>> // CHECK:       <key>file</key><integer>0</integer>
>> // CHECK:      </dict>
>> @@ -1281,12 +1342,12 @@
>> // CHECK:         <key>start</key>
>> // CHECK:          <array>
>> // CHECK:           <dict>
>> -// CHECK:            <key>line</key><integer>54</integer>
>> +// CHECK:            <key>line</key><integer>52</integer>
>> // CHECK:            <key>col</key><integer>1</integer>
>> // CHECK:            <key>file</key><integer>0</integer>
>> // CHECK:           </dict>
>> // CHECK:           <dict>
>> -// CHECK:            <key>line</key><integer>54</integer>
>> +// CHECK:            <key>line</key><integer>52</integer>
>> // CHECK:            <key>col</key><integer>1</integer>
>> // CHECK:            <key>file</key><integer>0</integer>
>> // CHECK:           </dict>
>> @@ -1294,12 +1355,12 @@
>> // CHECK:         <key>end</key>
>> // CHECK:          <array>
>> // CHECK:           <dict>
>> -// CHECK:            <key>line</key><integer>55</integer>
>> +// CHECK:            <key>line</key><integer>53</integer>
>> // CHECK:            <key>col</key><integer>5</integer>
>> // CHECK:            <key>file</key><integer>0</integer>
>> // CHECK:           </dict>
>> // CHECK:           <dict>
>> -// CHECK:            <key>line</key><integer>55</integer>
>> +// CHECK:            <key>line</key><integer>53</integer>
>> // CHECK:            <key>col</key><integer>5</integer>
>> // CHECK:            <key>file</key><integer>0</integer>
>> // CHECK:           </dict>
>> @@ -1315,12 +1376,12 @@
>> // CHECK:         <key>start</key>
>> // CHECK:          <array>
>> // CHECK:           <dict>
>> -// CHECK:            <key>line</key><integer>55</integer>
>> +// CHECK:            <key>line</key><integer>53</integer>
>> // CHECK:            <key>col</key><integer>5</integer>
>> // CHECK:            <key>file</key><integer>0</integer>
>> // CHECK:           </dict>
>> // CHECK:           <dict>
>> -// CHECK:            <key>line</key><integer>55</integer>
>> +// CHECK:            <key>line</key><integer>53</integer>
>> // CHECK:            <key>col</key><integer>5</integer>
>> // CHECK:            <key>file</key><integer>0</integer>
>> // CHECK:           </dict>
>> @@ -1328,12 +1389,12 @@
>> // CHECK:         <key>end</key>
>> // CHECK:          <array>
>> // CHECK:           <dict>
>> -// CHECK:            <key>line</key><integer>55</integer>
>> +// CHECK:            <key>line</key><integer>53</integer>
>> // CHECK:            <key>col</key><integer>10</integer>
>> // CHECK:            <key>file</key><integer>0</integer>
>> // CHECK:           </dict>
>> // CHECK:           <dict>
>> -// CHECK:            <key>line</key><integer>55</integer>
>> +// CHECK:            <key>line</key><integer>53</integer>
>> // CHECK:            <key>col</key><integer>20</integer>
>> // CHECK:            <key>file</key><integer>0</integer>
>> // CHECK:           </dict>
>> @@ -1345,7 +1406,7 @@
>> // CHECK:      <key>kind</key><string>event</string>
>> // CHECK:      <key>location</key>
>> // CHECK:      <dict>
>> -// CHECK:       <key>line</key><integer>55</integer>
>> +// CHECK:       <key>line</key><integer>53</integer>
>> // CHECK:       <key>col</key><integer>10</integer>
>> // CHECK:       <key>file</key><integer>0</integer>
>> // CHECK:      </dict>
>> @@ -1353,12 +1414,12 @@
>> // CHECK:      <array>
>> // CHECK:        <array>
>> // CHECK:         <dict>
>> -// CHECK:          <key>line</key><integer>55</integer>
>> +// CHECK:          <key>line</key><integer>53</integer>
>> // CHECK:          <key>col</key><integer>10</integer>
>> // CHECK:          <key>file</key><integer>0</integer>
>> // CHECK:         </dict>
>> // CHECK:         <dict>
>> -// CHECK:          <key>line</key><integer>55</integer>
>> +// CHECK:          <key>line</key><integer>53</integer>
>> // CHECK:          <key>col</key><integer>20</integer>
>> // CHECK:          <key>file</key><integer>0</integer>
>> // CHECK:         </dict>
>> @@ -1378,12 +1439,12 @@
>> // CHECK:         <key>start</key>
>> // CHECK:          <array>
>> // CHECK:           <dict>
>> -// CHECK:            <key>line</key><integer>55</integer>
>> +// CHECK:            <key>line</key><integer>53</integer>
>> // CHECK:            <key>col</key><integer>10</integer>
>> // CHECK:            <key>file</key><integer>0</integer>
>> // CHECK:           </dict>
>> // CHECK:           <dict>
>> -// CHECK:            <key>line</key><integer>55</integer>
>> +// CHECK:            <key>line</key><integer>53</integer>
>> // CHECK:            <key>col</key><integer>20</integer>
>> // CHECK:            <key>file</key><integer>0</integer>
>> // CHECK:           </dict>
>> @@ -1391,12 +1452,12 @@
>> // CHECK:         <key>end</key>
>> // CHECK:          <array>
>> // CHECK:           <dict>
>> -// CHECK:            <key>line</key><integer>56</integer>
>> +// CHECK:            <key>line</key><integer>54</integer>
>> // CHECK:            <key>col</key><integer>5</integer>
>> // CHECK:            <key>file</key><integer>0</integer>
>> // CHECK:           </dict>
>> // CHECK:           <dict>
>> -// CHECK:            <key>line</key><integer>56</integer>
>> +// CHECK:            <key>line</key><integer>54</integer>
>> // CHECK:            <key>col</key><integer>5</integer>
>> // CHECK:            <key>file</key><integer>0</integer>
>> // CHECK:           </dict>
>> @@ -1412,12 +1473,12 @@
>> // CHECK:         <key>start</key>
>> // CHECK:          <array>
>> // CHECK:           <dict>
>> -// CHECK:            <key>line</key><integer>56</integer>
>> +// CHECK:            <key>line</key><integer>54</integer>
>> // CHECK:            <key>col</key><integer>5</integer>
>> // CHECK:            <key>file</key><integer>0</integer>
>> // CHECK:           </dict>
>> // CHECK:           <dict>
>> -// CHECK:            <key>line</key><integer>56</integer>
>> +// CHECK:            <key>line</key><integer>54</integer>
>> // CHECK:            <key>col</key><integer>5</integer>
>> // CHECK:            <key>file</key><integer>0</integer>
>> // CHECK:           </dict>
>> @@ -1425,12 +1486,12 @@
>> // CHECK:         <key>end</key>
>> // CHECK:          <array>
>> // CHECK:           <dict>
>> -// CHECK:            <key>line</key><integer>57</integer>
>> +// CHECK:            <key>line</key><integer>55</integer>
>> // CHECK:            <key>col</key><integer>7</integer>
>> // CHECK:            <key>file</key><integer>0</integer>
>> // CHECK:           </dict>
>> // CHECK:           <dict>
>> -// CHECK:            <key>line</key><integer>57</integer>
>> +// CHECK:            <key>line</key><integer>55</integer>
>> // CHECK:            <key>col</key><integer>7</integer>
>> // CHECK:            <key>file</key><integer>0</integer>
>> // CHECK:           </dict>
>> @@ -1442,7 +1503,7 @@
>> // CHECK:      <key>kind</key><string>event</string>
>> // CHECK:      <key>location</key>
>> // CHECK:      <dict>
>> -// CHECK:       <key>line</key><integer>57</integer>
>> +// CHECK:       <key>line</key><integer>55</integer>
>> // CHECK:       <key>col</key><integer>7</integer>
>> // CHECK:       <key>file</key><integer>0</integer>
>> // CHECK:      </dict>
>> @@ -1450,12 +1511,12 @@
>> // CHECK:      <array>
>> // CHECK:        <array>
>> // CHECK:         <dict>
>> -// CHECK:          <key>line</key><integer>57</integer>
>> +// CHECK:          <key>line</key><integer>55</integer>
>> // CHECK:          <key>col</key><integer>7</integer>
>> // CHECK:          <key>file</key><integer>0</integer>
>> // CHECK:         </dict>
>> // CHECK:         <dict>
>> -// CHECK:          <key>line</key><integer>57</integer>
>> +// CHECK:          <key>line</key><integer>55</integer>
>> // CHECK:          <key>col</key><integer>17</integer>
>> // CHECK:          <key>file</key><integer>0</integer>
>> // CHECK:         </dict>
>> @@ -1471,7 +1532,7 @@
>> // CHECK:      <key>kind</key><string>event</string>
>> // CHECK:      <key>location</key>
>> // CHECK:      <dict>
>> -// CHECK:       <key>line</key><integer>51</integer>
>> +// CHECK:       <key>line</key><integer>49</integer>
>> // CHECK:       <key>col</key><integer>1</integer>
>> // CHECK:       <key>file</key><integer>0</integer>
>> // CHECK:      </dict>
>> @@ -1489,12 +1550,12 @@
>> // CHECK:         <key>start</key>
>> // CHECK:          <array>
>> // CHECK:           <dict>
>> -// CHECK:            <key>line</key><integer>51</integer>
>> +// CHECK:            <key>line</key><integer>49</integer>
>> // CHECK:            <key>col</key><integer>1</integer>
>> // CHECK:            <key>file</key><integer>0</integer>
>> // CHECK:           </dict>
>> // CHECK:           <dict>
>> -// CHECK:            <key>line</key><integer>51</integer>
>> +// CHECK:            <key>line</key><integer>49</integer>
>> // CHECK:            <key>col</key><integer>1</integer>
>> // CHECK:            <key>file</key><integer>0</integer>
>> // CHECK:           </dict>
>> @@ -1502,12 +1563,12 @@
>> // CHECK:         <key>end</key>
>> // CHECK:          <array>
>> // CHECK:           <dict>
>> -// CHECK:            <key>line</key><integer>52</integer>
>> +// CHECK:            <key>line</key><integer>50</integer>
>> // CHECK:            <key>col</key><integer>5</integer>
>> // CHECK:            <key>file</key><integer>0</integer>
>> // CHECK:           </dict>
>> // CHECK:           <dict>
>> -// CHECK:            <key>line</key><integer>52</integer>
>> +// CHECK:            <key>line</key><integer>50</integer>
>> // CHECK:            <key>col</key><integer>11</integer>
>> // CHECK:            <key>file</key><integer>0</integer>
>> // CHECK:           </dict>
>> @@ -1519,7 +1580,7 @@
>> // CHECK:      <key>kind</key><string>event</string>
>> // CHECK:      <key>location</key>
>> // CHECK:      <dict>
>> -// CHECK:       <key>line</key><integer>52</integer>
>> +// CHECK:       <key>line</key><integer>50</integer>
>> // CHECK:       <key>col</key><integer>5</integer>
>> // CHECK:       <key>file</key><integer>0</integer>
>> // CHECK:      </dict>
>> @@ -1527,12 +1588,12 @@
>> // CHECK:      <array>
>> // CHECK:        <array>
>> // CHECK:         <dict>
>> -// CHECK:          <key>line</key><integer>52</integer>
>> +// CHECK:          <key>line</key><integer>50</integer>
>> // CHECK:          <key>col</key><integer>5</integer>
>> // CHECK:          <key>file</key><integer>0</integer>
>> // CHECK:         </dict>
>> // CHECK:         <dict>
>> -// CHECK:          <key>line</key><integer>52</integer>
>> +// CHECK:          <key>line</key><integer>50</integer>
>> // CHECK:          <key>col</key><integer>11</integer>
>> // CHECK:          <key>file</key><integer>0</integer>
>> // CHECK:         </dict>
>> @@ -1548,7 +1609,7 @@
>> // CHECK:      <key>kind</key><string>event</string>
>> // CHECK:      <key>location</key>
>> // CHECK:      <dict>
>> -// CHECK:       <key>line</key><integer>57</integer>
>> +// CHECK:       <key>line</key><integer>55</integer>
>> // CHECK:       <key>col</key><integer>7</integer>
>> // CHECK:       <key>file</key><integer>0</integer>
>> // CHECK:      </dict>
>> @@ -1556,12 +1617,12 @@
>> // CHECK:      <array>
>> // CHECK:        <array>
>> // CHECK:         <dict>
>> -// CHECK:          <key>line</key><integer>57</integer>
>> +// CHECK:          <key>line</key><integer>55</integer>
>> // CHECK:          <key>col</key><integer>7</integer>
>> // CHECK:          <key>file</key><integer>0</integer>
>> // CHECK:         </dict>
>> // CHECK:         <dict>
>> -// CHECK:          <key>line</key><integer>57</integer>
>> +// CHECK:          <key>line</key><integer>55</integer>
>> // CHECK:          <key>col</key><integer>17</integer>
>> // CHECK:          <key>file</key><integer>0</integer>
>> // CHECK:         </dict>
>> @@ -1581,12 +1642,12 @@
>> // CHECK:         <key>start</key>
>> // CHECK:          <array>
>> // CHECK:           <dict>
>> -// CHECK:            <key>line</key><integer>57</integer>
>> +// CHECK:            <key>line</key><integer>55</integer>
>> // CHECK:            <key>col</key><integer>7</integer>
>> // CHECK:            <key>file</key><integer>0</integer>
>> // CHECK:           </dict>
>> // CHECK:           <dict>
>> -// CHECK:            <key>line</key><integer>57</integer>
>> +// CHECK:            <key>line</key><integer>55</integer>
>> // CHECK:            <key>col</key><integer>17</integer>
>> // CHECK:            <key>file</key><integer>0</integer>
>> // CHECK:           </dict>
>> @@ -1594,12 +1655,12 @@
>> // CHECK:         <key>end</key>
>> // CHECK:          <array>
>> // CHECK:           <dict>
>> -// CHECK:            <key>line</key><integer>58</integer>
>> +// CHECK:            <key>line</key><integer>56</integer>
>> // CHECK:            <key>col</key><integer>5</integer>
>> // CHECK:            <key>file</key><integer>0</integer>
>> // CHECK:           </dict>
>> // CHECK:           <dict>
>> -// CHECK:            <key>line</key><integer>58</integer>
>> +// CHECK:            <key>line</key><integer>56</integer>
>> // CHECK:            <key>col</key><integer>5</integer>
>> // CHECK:            <key>file</key><integer>0</integer>
>> // CHECK:           </dict>
>> @@ -1611,7 +1672,7 @@
>> // CHECK:      <key>kind</key><string>event</string>
>> // CHECK:      <key>location</key>
>> // CHECK:      <dict>
>> -// CHECK:       <key>line</key><integer>62</integer>
>> +// CHECK:       <key>line</key><integer>60</integer>
>> // CHECK:       <key>col</key><integer>5</integer>
>> // CHECK:       <key>file</key><integer>0</integer>
>> // CHECK:      </dict>
>> @@ -1619,12 +1680,12 @@
>> // CHECK:      <array>
>> // CHECK:        <array>
>> // CHECK:         <dict>
>> -// CHECK:          <key>line</key><integer>62</integer>
>> +// CHECK:          <key>line</key><integer>60</integer>
>> // CHECK:          <key>col</key><integer>5</integer>
>> // CHECK:          <key>file</key><integer>0</integer>
>> // CHECK:         </dict>
>> // CHECK:         <dict>
>> -// CHECK:          <key>line</key><integer>62</integer>
>> +// CHECK:          <key>line</key><integer>60</integer>
>> // CHECK:          <key>col</key><integer>28</integer>
>> // CHECK:          <key>file</key><integer>0</integer>
>> // CHECK:         </dict>
>> @@ -1644,12 +1705,12 @@
>> // CHECK:         <key>start</key>
>> // CHECK:          <array>
>> // CHECK:           <dict>
>> -// CHECK:            <key>line</key><integer>62</integer>
>> +// CHECK:            <key>line</key><integer>60</integer>
>> // CHECK:            <key>col</key><integer>5</integer>
>> // CHECK:            <key>file</key><integer>0</integer>
>> // CHECK:           </dict>
>> // CHECK:           <dict>
>> -// CHECK:            <key>line</key><integer>62</integer>
>> +// CHECK:            <key>line</key><integer>60</integer>
>> // CHECK:            <key>col</key><integer>28</integer>
>> // CHECK:            <key>file</key><integer>0</integer>
>> // CHECK:           </dict>
>> @@ -1657,12 +1718,12 @@
>> // CHECK:         <key>end</key>
>> // CHECK:          <array>
>> // CHECK:           <dict>
>> -// CHECK:            <key>line</key><integer>63</integer>
>> +// CHECK:            <key>line</key><integer>61</integer>
>> // CHECK:            <key>col</key><integer>5</integer>
>> // CHECK:            <key>file</key><integer>0</integer>
>> // CHECK:           </dict>
>> // CHECK:           <dict>
>> -// CHECK:            <key>line</key><integer>63</integer>
>> +// CHECK:            <key>line</key><integer>61</integer>
>> // CHECK:            <key>col</key><integer>14</integer>
>> // CHECK:            <key>file</key><integer>0</integer>
>> // CHECK:           </dict>
>> @@ -1674,7 +1735,7 @@
>> // CHECK:      <key>kind</key><string>event</string>
>> // CHECK:      <key>location</key>
>> // CHECK:      <dict>
>> -// CHECK:       <key>line</key><integer>63</integer>
>> +// CHECK:       <key>line</key><integer>61</integer>
>> // CHECK:       <key>col</key><integer>5</integer>
>> // CHECK:       <key>file</key><integer>0</integer>
>> // CHECK:      </dict>
>> @@ -1682,12 +1743,12 @@
>> // CHECK:      <array>
>> // CHECK:        <array>
>> // CHECK:         <dict>
>> -// CHECK:          <key>line</key><integer>63</integer>
>> +// CHECK:          <key>line</key><integer>61</integer>
>> // CHECK:          <key>col</key><integer>12</integer>
>> // CHECK:          <key>file</key><integer>0</integer>
>> // CHECK:         </dict>
>> // CHECK:         <dict>
>> -// CHECK:          <key>line</key><integer>63</integer>
>> +// CHECK:          <key>line</key><integer>61</integer>
>> // CHECK:          <key>col</key><integer>14</integer>
>> // CHECK:          <key>file</key><integer>0</integer>
>> // CHECK:         </dict>
>> @@ -1705,7 +1766,7 @@
>> // CHECK:    <key>type</key><string>Use-after-free</string>
>> // CHECK:   <key>location</key>
>> // CHECK:   <dict>
>> -// CHECK:    <key>line</key><integer>63</integer>
>> +// CHECK:    <key>line</key><integer>61</integer>
>> // CHECK:    <key>col</key><integer>5</integer>
>> // CHECK:    <key>file</key><integer>0</integer>
>> // CHECK:   </dict>
>> @@ -1721,12 +1782,12 @@
>> // CHECK:         <key>start</key>
>> // CHECK:          <array>
>> // CHECK:           <dict>
>> -// CHECK:            <key>line</key><integer>76</integer>
>> +// CHECK:            <key>line</key><integer>74</integer>
>> // CHECK:            <key>col</key><integer>5</integer>
>> // CHECK:            <key>file</key><integer>0</integer>
>> // CHECK:           </dict>
>> // CHECK:           <dict>
>> -// CHECK:            <key>line</key><integer>76</integer>
>> +// CHECK:            <key>line</key><integer>74</integer>
>> // CHECK:            <key>col</key><integer>5</integer>
>> // CHECK:            <key>file</key><integer>0</integer>
>> // CHECK:           </dict>
>> @@ -1734,12 +1795,12 @@
>> // CHECK:         <key>end</key>
>> // CHECK:          <array>
>> // CHECK:           <dict>
>> -// CHECK:            <key>line</key><integer>76</integer>
>> +// CHECK:            <key>line</key><integer>74</integer>
>> // CHECK:            <key>col</key><integer>25</integer>
>> // CHECK:            <key>file</key><integer>0</integer>
>> // CHECK:           </dict>
>> // CHECK:           <dict>
>> -// CHECK:            <key>line</key><integer>76</integer>
>> +// CHECK:            <key>line</key><integer>74</integer>
>> // CHECK:            <key>col</key><integer>35</integer>
>> // CHECK:            <key>file</key><integer>0</integer>
>> // CHECK:           </dict>
>> @@ -1751,7 +1812,7 @@
>> // CHECK:      <key>kind</key><string>event</string>
>> // CHECK:      <key>location</key>
>> // CHECK:      <dict>
>> -// CHECK:       <key>line</key><integer>76</integer>
>> +// CHECK:       <key>line</key><integer>74</integer>
>> // CHECK:       <key>col</key><integer>25</integer>
>> // CHECK:       <key>file</key><integer>0</integer>
>> // CHECK:      </dict>
>> @@ -1759,12 +1820,12 @@
>> // CHECK:      <array>
>> // CHECK:        <array>
>> // CHECK:         <dict>
>> -// CHECK:          <key>line</key><integer>76</integer>
>> +// CHECK:          <key>line</key><integer>74</integer>
>> // CHECK:          <key>col</key><integer>25</integer>
>> // CHECK:          <key>file</key><integer>0</integer>
>> // CHECK:         </dict>
>> // CHECK:         <dict>
>> -// CHECK:          <key>line</key><integer>76</integer>
>> +// CHECK:          <key>line</key><integer>74</integer>
>> // CHECK:          <key>col</key><integer>35</integer>
>> // CHECK:          <key>file</key><integer>0</integer>
>> // CHECK:         </dict>
>> @@ -1784,12 +1845,12 @@
>> // CHECK:         <key>start</key>
>> // CHECK:          <array>
>> // CHECK:           <dict>
>> -// CHECK:            <key>line</key><integer>76</integer>
>> +// CHECK:            <key>line</key><integer>74</integer>
>> // CHECK:            <key>col</key><integer>25</integer>
>> // CHECK:            <key>file</key><integer>0</integer>
>> // CHECK:           </dict>
>> // CHECK:           <dict>
>> -// CHECK:            <key>line</key><integer>76</integer>
>> +// CHECK:            <key>line</key><integer>74</integer>
>> // CHECK:            <key>col</key><integer>35</integer>
>> // CHECK:            <key>file</key><integer>0</integer>
>> // CHECK:           </dict>
>> @@ -1797,12 +1858,12 @@
>> // CHECK:         <key>end</key>
>> // CHECK:          <array>
>> // CHECK:           <dict>
>> -// CHECK:            <key>line</key><integer>77</integer>
>> +// CHECK:            <key>line</key><integer>75</integer>
>> // CHECK:            <key>col</key><integer>11</integer>
>> // CHECK:            <key>file</key><integer>0</integer>
>> // CHECK:           </dict>
>> // CHECK:           <dict>
>> -// CHECK:            <key>line</key><integer>77</integer>
>> +// CHECK:            <key>line</key><integer>75</integer>
>> // CHECK:            <key>col</key><integer>11</integer>
>> // CHECK:            <key>file</key><integer>0</integer>
>> // CHECK:           </dict>
>> @@ -1814,7 +1875,7 @@
>> // CHECK:      <key>kind</key><string>event</string>
>> // CHECK:      <key>location</key>
>> // CHECK:      <dict>
>> -// CHECK:       <key>line</key><integer>77</integer>
>> +// CHECK:       <key>line</key><integer>75</integer>
>> // CHECK:       <key>col</key><integer>11</integer>
>> // CHECK:       <key>file</key><integer>0</integer>
>> // CHECK:      </dict>
>> @@ -1822,12 +1883,12 @@
>> // CHECK:      <array>
>> // CHECK:        <array>
>> // CHECK:         <dict>
>> -// CHECK:          <key>line</key><integer>77</integer>
>> +// CHECK:          <key>line</key><integer>75</integer>
>> // CHECK:          <key>col</key><integer>11</integer>
>> // CHECK:          <key>file</key><integer>0</integer>
>> // CHECK:         </dict>
>> // CHECK:         <dict>
>> -// CHECK:          <key>line</key><integer>77</integer>
>> +// CHECK:          <key>line</key><integer>75</integer>
>> // CHECK:          <key>col</key><integer>25</integer>
>> // CHECK:          <key>file</key><integer>0</integer>
>> // CHECK:         </dict>
>> @@ -1843,7 +1904,7 @@
>> // CHECK:      <key>kind</key><string>event</string>
>> // CHECK:      <key>location</key>
>> // CHECK:      <dict>
>> -// CHECK:       <key>line</key><integer>67</integer>
>> +// CHECK:       <key>line</key><integer>65</integer>
>> // CHECK:       <key>col</key><integer>1</integer>
>> // CHECK:       <key>file</key><integer>0</integer>
>> // CHECK:      </dict>
>> @@ -1861,12 +1922,12 @@
>> // CHECK:         <key>start</key>
>> // CHECK:          <array>
>> // CHECK:           <dict>
>> -// CHECK:            <key>line</key><integer>67</integer>
>> +// CHECK:            <key>line</key><integer>65</integer>
>> // CHECK:            <key>col</key><integer>1</integer>
>> // CHECK:            <key>file</key><integer>0</integer>
>> // CHECK:           </dict>
>> // CHECK:           <dict>
>> -// CHECK:            <key>line</key><integer>67</integer>
>> +// CHECK:            <key>line</key><integer>65</integer>
>> // CHECK:            <key>col</key><integer>1</integer>
>> // CHECK:            <key>file</key><integer>0</integer>
>> // CHECK:           </dict>
>> @@ -1874,12 +1935,12 @@
>> // CHECK:         <key>end</key>
>> // CHECK:          <array>
>> // CHECK:           <dict>
>> -// CHECK:            <key>line</key><integer>68</integer>
>> +// CHECK:            <key>line</key><integer>66</integer>
>> // CHECK:            <key>col</key><integer>5</integer>
>> // CHECK:            <key>file</key><integer>0</integer>
>> // CHECK:           </dict>
>> // CHECK:           <dict>
>> -// CHECK:            <key>line</key><integer>68</integer>
>> +// CHECK:            <key>line</key><integer>66</integer>
>> // CHECK:            <key>col</key><integer>5</integer>
>> // CHECK:            <key>file</key><integer>0</integer>
>> // CHECK:           </dict>
>> @@ -1895,12 +1956,12 @@
>> // CHECK:         <key>start</key>
>> // CHECK:          <array>
>> // CHECK:           <dict>
>> -// CHECK:            <key>line</key><integer>68</integer>
>> +// CHECK:            <key>line</key><integer>66</integer>
>> // CHECK:            <key>col</key><integer>5</integer>
>> // CHECK:            <key>file</key><integer>0</integer>
>> // CHECK:           </dict>
>> // CHECK:           <dict>
>> -// CHECK:            <key>line</key><integer>68</integer>
>> +// CHECK:            <key>line</key><integer>66</integer>
>> // CHECK:            <key>col</key><integer>5</integer>
>> // CHECK:            <key>file</key><integer>0</integer>
>> // CHECK:           </dict>
>> @@ -1908,12 +1969,12 @@
>> // CHECK:         <key>end</key>
>> // CHECK:          <array>
>> // CHECK:           <dict>
>> -// CHECK:            <key>line</key><integer>69</integer>
>> +// CHECK:            <key>line</key><integer>67</integer>
>> // CHECK:            <key>col</key><integer>5</integer>
>> // CHECK:            <key>file</key><integer>0</integer>
>> // CHECK:           </dict>
>> // CHECK:           <dict>
>> -// CHECK:            <key>line</key><integer>69</integer>
>> +// CHECK:            <key>line</key><integer>67</integer>
>> // CHECK:            <key>col</key><integer>5</integer>
>> // CHECK:            <key>file</key><integer>0</integer>
>> // CHECK:           </dict>
>> @@ -1929,12 +1990,12 @@
>> // CHECK:         <key>start</key>
>> // CHECK:          <array>
>> // CHECK:           <dict>
>> -// CHECK:            <key>line</key><integer>69</integer>
>> +// CHECK:            <key>line</key><integer>67</integer>
>> // CHECK:            <key>col</key><integer>5</integer>
>> // CHECK:            <key>file</key><integer>0</integer>
>> // CHECK:           </dict>
>> // CHECK:           <dict>
>> -// CHECK:            <key>line</key><integer>69</integer>
>> +// CHECK:            <key>line</key><integer>67</integer>
>> // CHECK:            <key>col</key><integer>5</integer>
>> // CHECK:            <key>file</key><integer>0</integer>
>> // CHECK:           </dict>
>> @@ -1942,12 +2003,12 @@
>> // CHECK:         <key>end</key>
>> // CHECK:          <array>
>> // CHECK:           <dict>
>> -// CHECK:            <key>line</key><integer>69</integer>
>> +// CHECK:            <key>line</key><integer>67</integer>
>> // CHECK:            <key>col</key><integer>18</integer>
>> // CHECK:            <key>file</key><integer>0</integer>
>> // CHECK:           </dict>
>> // CHECK:           <dict>
>> -// CHECK:            <key>line</key><integer>69</integer>
>> +// CHECK:            <key>line</key><integer>67</integer>
>> // CHECK:            <key>col</key><integer>40</integer>
>> // CHECK:            <key>file</key><integer>0</integer>
>> // CHECK:           </dict>
>> @@ -1959,7 +2020,7 @@
>> // CHECK:      <key>kind</key><string>event</string>
>> // CHECK:      <key>location</key>
>> // CHECK:      <dict>
>> -// CHECK:       <key>line</key><integer>69</integer>
>> +// CHECK:       <key>line</key><integer>67</integer>
>> // CHECK:       <key>col</key><integer>18</integer>
>> // CHECK:       <key>file</key><integer>0</integer>
>> // CHECK:      </dict>
>> @@ -1967,12 +2028,12 @@
>> // CHECK:      <array>
>> // CHECK:        <array>
>> // CHECK:         <dict>
>> -// CHECK:          <key>line</key><integer>69</integer>
>> +// CHECK:          <key>line</key><integer>67</integer>
>> // CHECK:          <key>col</key><integer>18</integer>
>> // CHECK:          <key>file</key><integer>0</integer>
>> // CHECK:         </dict>
>> // CHECK:         <dict>
>> -// CHECK:          <key>line</key><integer>69</integer>
>> +// CHECK:          <key>line</key><integer>67</integer>
>> // CHECK:          <key>col</key><integer>40</integer>
>> // CHECK:          <key>file</key><integer>0</integer>
>> // CHECK:         </dict>
>> @@ -1992,12 +2053,12 @@
>> // CHECK:         <key>start</key>
>> // CHECK:          <array>
>> // CHECK:           <dict>
>> -// CHECK:            <key>line</key><integer>69</integer>
>> +// CHECK:            <key>line</key><integer>67</integer>
>> // CHECK:            <key>col</key><integer>18</integer>
>> // CHECK:            <key>file</key><integer>0</integer>
>> // CHECK:           </dict>
>> // CHECK:           <dict>
>> -// CHECK:            <key>line</key><integer>69</integer>
>> +// CHECK:            <key>line</key><integer>67</integer>
>> // CHECK:            <key>col</key><integer>40</integer>
>> // CHECK:            <key>file</key><integer>0</integer>
>> // CHECK:           </dict>
>> @@ -2005,13 +2066,47 @@
>> // CHECK:         <key>end</key>
>> // CHECK:          <array>
>> // CHECK:           <dict>
>> -// CHECK:            <key>line</key><integer>70</integer>
>> +// CHECK:            <key>line</key><integer>68</integer>
>> // CHECK:            <key>col</key><integer>5</integer>
>> // CHECK:            <key>file</key><integer>0</integer>
>> // CHECK:           </dict>
>> // CHECK:           <dict>
>> -// CHECK:            <key>line</key><integer>70</integer>
>> -// CHECK:            <key>col</key><integer>6</integer>
>> +// CHECK:            <key>line</key><integer>68</integer>
>> +// CHECK:            <key>col</key><integer>5</integer>
>> +// CHECK:            <key>file</key><integer>0</integer>
>> +// CHECK:           </dict>
>> +// CHECK:          </array>
>> +// CHECK:        </dict>
>> +// CHECK:       </array>
>> +// CHECK:     </dict>
>> +// CHECK:     <dict>
>> +// CHECK:      <key>kind</key><string>control</string>
>> +// CHECK:      <key>edges</key>
>> +// CHECK:       <array>
>> +// CHECK:        <dict>
>> +// CHECK:         <key>start</key>
>> +// CHECK:          <array>
>> +// CHECK:           <dict>
>> +// CHECK:            <key>line</key><integer>68</integer>
>> +// CHECK:            <key>col</key><integer>5</integer>
>> +// CHECK:            <key>file</key><integer>0</integer>
>> +// CHECK:           </dict>
>> +// CHECK:           <dict>
>> +// CHECK:            <key>line</key><integer>68</integer>
>> +// CHECK:            <key>col</key><integer>5</integer>
>> +// CHECK:            <key>file</key><integer>0</integer>
>> +// CHECK:           </dict>
>> +// CHECK:          </array>
>> +// CHECK:         <key>end</key>
>> +// CHECK:          <array>
>> +// CHECK:           <dict>
>> +// CHECK:            <key>line</key><integer>68</integer>
>> +// CHECK:            <key>col</key><integer>9</integer>
>> +// CHECK:            <key>file</key><integer>0</integer>
>> +// CHECK:           </dict>
>> +// CHECK:           <dict>
>> +// CHECK:            <key>line</key><integer>68</integer>
>> +// CHECK:            <key>col</key><integer>12</integer>
>> // CHECK:            <key>file</key><integer>0</integer>
>> // CHECK:           </dict>
>> // CHECK:          </array>
>> @@ -2022,30 +2117,30 @@
>> // CHECK:      <key>kind</key><string>event</string>
>> // CHECK:      <key>location</key>
>> // CHECK:      <dict>
>> -// CHECK:       <key>line</key><integer>70</integer>
>> -// CHECK:       <key>col</key><integer>5</integer>
>> +// CHECK:       <key>line</key><integer>68</integer>
>> +// CHECK:       <key>col</key><integer>9</integer>
>> // CHECK:       <key>file</key><integer>0</integer>
>> // CHECK:      </dict>
>> // CHECK:      <key>ranges</key>
>> // CHECK:      <array>
>> // CHECK:        <array>
>> // CHECK:         <dict>
>> -// CHECK:          <key>line</key><integer>70</integer>
>> -// CHECK:          <key>col</key><integer>5</integer>
>> +// CHECK:          <key>line</key><integer>68</integer>
>> +// CHECK:          <key>col</key><integer>9</integer>
>> // CHECK:          <key>file</key><integer>0</integer>
>> // CHECK:         </dict>
>> // CHECK:         <dict>
>> -// CHECK:          <key>line</key><integer>70</integer>
>> -// CHECK:          <key>col</key><integer>6</integer>
>> +// CHECK:          <key>line</key><integer>68</integer>
>> +// CHECK:          <key>col</key><integer>12</integer>
>> // CHECK:          <key>file</key><integer>0</integer>
>> // CHECK:         </dict>
>> // CHECK:        </array>
>> // CHECK:      </array>
>> // CHECK:      <key>depth</key><integer>1</integer>
>> // CHECK:      <key>extended_message</key>
>> -// CHECK:      <string>Reallocation failed</string>
>> +// CHECK:      <string>Assuming 'tmp' is null</string>
>> // CHECK:      <key>message</key>
>> -// CHECK: <string>Reallocation failed</string>
>> +// CHECK: <string>Assuming 'tmp' is null</string>
>> // CHECK:     </dict>
>> // CHECK:     <dict>
>> // CHECK:      <key>kind</key><string>control</string>
>> @@ -2055,26 +2150,26 @@
>> // CHECK:         <key>start</key>
>> // CHECK:          <array>
>> // CHECK:           <dict>
>> -// CHECK:            <key>line</key><integer>70</integer>
>> -// CHECK:            <key>col</key><integer>5</integer>
>> +// CHECK:            <key>line</key><integer>68</integer>
>> +// CHECK:            <key>col</key><integer>9</integer>
>> // CHECK:            <key>file</key><integer>0</integer>
>> // CHECK:           </dict>
>> // CHECK:           <dict>
>> -// CHECK:            <key>line</key><integer>70</integer>
>> -// CHECK:            <key>col</key><integer>6</integer>
>> +// CHECK:            <key>line</key><integer>68</integer>
>> +// CHECK:            <key>col</key><integer>12</integer>
>> // CHECK:            <key>file</key><integer>0</integer>
>> // CHECK:           </dict>
>> // CHECK:          </array>
>> // CHECK:         <key>end</key>
>> // CHECK:          <array>
>> // CHECK:           <dict>
>> -// CHECK:            <key>line</key><integer>70</integer>
>> -// CHECK:            <key>col</key><integer>9</integer>
>> +// CHECK:            <key>line</key><integer>68</integer>
>> +// CHECK:            <key>col</key><integer>5</integer>
>> // CHECK:            <key>file</key><integer>0</integer>
>> // CHECK:           </dict>
>> // CHECK:           <dict>
>> -// CHECK:            <key>line</key><integer>70</integer>
>> -// CHECK:            <key>col</key><integer>12</integer>
>> +// CHECK:            <key>line</key><integer>68</integer>
>> +// CHECK:            <key>col</key><integer>6</integer>
>> // CHECK:            <key>file</key><integer>0</integer>
>> // CHECK:           </dict>
>> // CHECK:          </array>
>> @@ -2082,6 +2177,35 @@
>> // CHECK:       </array>
>> // CHECK:     </dict>
>> // CHECK:     <dict>
>> +// CHECK:      <key>kind</key><string>event</string>
>> +// CHECK:      <key>location</key>
>> +// CHECK:      <dict>
>> +// CHECK:       <key>line</key><integer>68</integer>
>> +// CHECK:       <key>col</key><integer>5</integer>
>> +// CHECK:       <key>file</key><integer>0</integer>
>> +// CHECK:      </dict>
>> +// CHECK:      <key>ranges</key>
>> +// CHECK:      <array>
>> +// CHECK:        <array>
>> +// CHECK:         <dict>
>> +// CHECK:          <key>line</key><integer>68</integer>
>> +// CHECK:          <key>col</key><integer>5</integer>
>> +// CHECK:          <key>file</key><integer>0</integer>
>> +// CHECK:         </dict>
>> +// CHECK:         <dict>
>> +// CHECK:          <key>line</key><integer>68</integer>
>> +// CHECK:          <key>col</key><integer>6</integer>
>> +// CHECK:          <key>file</key><integer>0</integer>
>> +// CHECK:         </dict>
>> +// CHECK:        </array>
>> +// CHECK:      </array>
>> +// CHECK:      <key>depth</key><integer>1</integer>
>> +// CHECK:      <key>extended_message</key>
>> +// CHECK:      <string>Reallocation failed</string>
>> +// CHECK:      <key>message</key>
>> +// CHECK: <string>Reallocation failed</string>
>> +// CHECK:     </dict>
>> +// CHECK:     <dict>
>> // CHECK:      <key>kind</key><string>control</string>
>> // CHECK:      <key>edges</key>
>> // CHECK:       <array>
>> @@ -2089,25 +2213,25 @@
>> // CHECK:         <key>start</key>
>> // CHECK:          <array>
>> // CHECK:           <dict>
>> -// CHECK:            <key>line</key><integer>70</integer>
>> -// CHECK:            <key>col</key><integer>9</integer>
>> +// CHECK:            <key>line</key><integer>68</integer>
>> +// CHECK:            <key>col</key><integer>5</integer>
>> // CHECK:            <key>file</key><integer>0</integer>
>> // CHECK:           </dict>
>> // CHECK:           <dict>
>> -// CHECK:            <key>line</key><integer>70</integer>
>> -// CHECK:            <key>col</key><integer>12</integer>
>> +// CHECK:            <key>line</key><integer>68</integer>
>> +// CHECK:            <key>col</key><integer>6</integer>
>> // CHECK:            <key>file</key><integer>0</integer>
>> // CHECK:           </dict>
>> // CHECK:          </array>
>> // CHECK:         <key>end</key>
>> // CHECK:          <array>
>> // CHECK:           <dict>
>> -// CHECK:            <key>line</key><integer>71</integer>
>> +// CHECK:            <key>line</key><integer>69</integer>
>> // CHECK:            <key>col</key><integer>9</integer>
>> // CHECK:            <key>file</key><integer>0</integer>
>> // CHECK:           </dict>
>> // CHECK:           <dict>
>> -// CHECK:            <key>line</key><integer>71</integer>
>> +// CHECK:            <key>line</key><integer>69</integer>
>> // CHECK:            <key>col</key><integer>9</integer>
>> // CHECK:            <key>file</key><integer>0</integer>
>> // CHECK:           </dict>
>> @@ -2119,7 +2243,7 @@
>> // CHECK:      <key>kind</key><string>event</string>
>> // CHECK:      <key>location</key>
>> // CHECK:      <dict>
>> -// CHECK:       <key>line</key><integer>77</integer>
>> +// CHECK:       <key>line</key><integer>75</integer>
>> // CHECK:       <key>col</key><integer>11</integer>
>> // CHECK:       <key>file</key><integer>0</integer>
>> // CHECK:      </dict>
>> @@ -2127,12 +2251,12 @@
>> // CHECK:      <array>
>> // CHECK:        <array>
>> // CHECK:         <dict>
>> -// CHECK:          <key>line</key><integer>77</integer>
>> +// CHECK:          <key>line</key><integer>75</integer>
>> // CHECK:          <key>col</key><integer>11</integer>
>> // CHECK:          <key>file</key><integer>0</integer>
>> // CHECK:         </dict>
>> // CHECK:         <dict>
>> -// CHECK:          <key>line</key><integer>77</integer>
>> +// CHECK:          <key>line</key><integer>75</integer>
>> // CHECK:          <key>col</key><integer>25</integer>
>> // CHECK:          <key>file</key><integer>0</integer>
>> // CHECK:         </dict>
>> @@ -2152,12 +2276,12 @@
>> // CHECK:         <key>start</key>
>> // CHECK:          <array>
>> // CHECK:           <dict>
>> -// CHECK:            <key>line</key><integer>77</integer>
>> +// CHECK:            <key>line</key><integer>75</integer>
>> // CHECK:            <key>col</key><integer>11</integer>
>> // CHECK:            <key>file</key><integer>0</integer>
>> // CHECK:           </dict>
>> // CHECK:           <dict>
>> -// CHECK:            <key>line</key><integer>77</integer>
>> +// CHECK:            <key>line</key><integer>75</integer>
>> // CHECK:            <key>col</key><integer>25</integer>
>> // CHECK:            <key>file</key><integer>0</integer>
>> // CHECK:           </dict>
>> @@ -2165,12 +2289,12 @@
>> // CHECK:         <key>end</key>
>> // CHECK:          <array>
>> // CHECK:           <dict>
>> -// CHECK:            <key>line</key><integer>78</integer>
>> +// CHECK:            <key>line</key><integer>76</integer>
>> // CHECK:            <key>col</key><integer>5</integer>
>> // CHECK:            <key>file</key><integer>0</integer>
>> // CHECK:           </dict>
>> // CHECK:           <dict>
>> -// CHECK:            <key>line</key><integer>78</integer>
>> +// CHECK:            <key>line</key><integer>76</integer>
>> // CHECK:            <key>col</key><integer>13</integer>
>> // CHECK:            <key>file</key><integer>0</integer>
>> // CHECK:           </dict>
>> @@ -2182,7 +2306,7 @@
>> // CHECK:      <key>kind</key><string>event</string>
>> // CHECK:      <key>location</key>
>> // CHECK:      <dict>
>> -// CHECK:       <key>line</key><integer>78</integer>
>> +// CHECK:       <key>line</key><integer>76</integer>
>> // CHECK:       <key>col</key><integer>5</integer>
>> // CHECK:       <key>file</key><integer>0</integer>
>> // CHECK:      </dict>
>> @@ -2190,12 +2314,12 @@
>> // CHECK:      <array>
>> // CHECK:        <array>
>> // CHECK:         <dict>
>> -// CHECK:          <key>line</key><integer>78</integer>
>> +// CHECK:          <key>line</key><integer>76</integer>
>> // CHECK:          <key>col</key><integer>5</integer>
>> // CHECK:          <key>file</key><integer>0</integer>
>> // CHECK:         </dict>
>> // CHECK:         <dict>
>> -// CHECK:          <key>line</key><integer>78</integer>
>> +// CHECK:          <key>line</key><integer>76</integer>
>> // CHECK:          <key>col</key><integer>13</integer>
>> // CHECK:          <key>file</key><integer>0</integer>
>> // CHECK:         </dict>
>> @@ -2213,7 +2337,7 @@
>> // CHECK:    <key>type</key><string>Memory leak</string>
>> // CHECK:   <key>location</key>
>> // CHECK:   <dict>
>> -// CHECK:    <key>line</key><integer>78</integer>
>> +// CHECK:    <key>line</key><integer>76</integer>
>> // CHECK:    <key>col</key><integer>5</integer>
>> // CHECK:    <key>file</key><integer>0</integer>
>> // CHECK:   </dict>
>> @@ -2229,12 +2353,12 @@
>> // CHECK:         <key>start</key>
>> // CHECK:          <array>
>> // CHECK:           <dict>
>> -// CHECK:            <key>line</key><integer>86</integer>
>> +// CHECK:            <key>line</key><integer>84</integer>
>> // CHECK:            <key>col</key><integer>5</integer>
>> // CHECK:            <key>file</key><integer>0</integer>
>> // CHECK:           </dict>
>> // CHECK:           <dict>
>> -// CHECK:            <key>line</key><integer>86</integer>
>> +// CHECK:            <key>line</key><integer>84</integer>
>> // CHECK:            <key>col</key><integer>5</integer>
>> // CHECK:            <key>file</key><integer>0</integer>
>> // CHECK:           </dict>
>> @@ -2242,12 +2366,12 @@
>> // CHECK:         <key>end</key>
>> // CHECK:          <array>
>> // CHECK:           <dict>
>> -// CHECK:            <key>line</key><integer>87</integer>
>> +// CHECK:            <key>line</key><integer>85</integer>
>> // CHECK:            <key>col</key><integer>9</integer>
>> // CHECK:            <key>file</key><integer>0</integer>
>> // CHECK:           </dict>
>> // CHECK:           <dict>
>> -// CHECK:            <key>line</key><integer>87</integer>
>> +// CHECK:            <key>line</key><integer>85</integer>
>> // CHECK:            <key>col</key><integer>9</integer>
>> // CHECK:            <key>file</key><integer>0</integer>
>> // CHECK:           </dict>
>> @@ -2259,7 +2383,7 @@
>> // CHECK:      <key>kind</key><string>event</string>
>> // CHECK:      <key>location</key>
>> // CHECK:      <dict>
>> -// CHECK:       <key>line</key><integer>87</integer>
>> +// CHECK:       <key>line</key><integer>85</integer>
>> // CHECK:       <key>col</key><integer>9</integer>
>> // CHECK:       <key>file</key><integer>0</integer>
>> // CHECK:      </dict>
>> @@ -2267,12 +2391,12 @@
>> // CHECK:      <array>
>> // CHECK:        <array>
>> // CHECK:         <dict>
>> -// CHECK:          <key>line</key><integer>87</integer>
>> +// CHECK:          <key>line</key><integer>85</integer>
>> // CHECK:          <key>col</key><integer>9</integer>
>> // CHECK:          <key>file</key><integer>0</integer>
>> // CHECK:         </dict>
>> // CHECK:         <dict>
>> -// CHECK:          <key>line</key><integer>87</integer>
>> +// CHECK:          <key>line</key><integer>85</integer>
>> // CHECK:          <key>col</key><integer>28</integer>
>> // CHECK:          <key>file</key><integer>0</integer>
>> // CHECK:         </dict>
>> @@ -2288,7 +2412,7 @@
>> // CHECK:      <key>kind</key><string>event</string>
>> // CHECK:      <key>location</key>
>> // CHECK:      <dict>
>> -// CHECK:       <key>line</key><integer>82</integer>
>> +// CHECK:       <key>line</key><integer>80</integer>
>> // CHECK:       <key>col</key><integer>1</integer>
>> // CHECK:       <key>file</key><integer>0</integer>
>> // CHECK:      </dict>
>> @@ -2306,12 +2430,12 @@
>> // CHECK:         <key>start</key>
>> // CHECK:          <array>
>> // CHECK:           <dict>
>> -// CHECK:            <key>line</key><integer>82</integer>
>> +// CHECK:            <key>line</key><integer>80</integer>
>> // CHECK:            <key>col</key><integer>1</integer>
>> // CHECK:            <key>file</key><integer>0</integer>
>> // CHECK:           </dict>
>> // CHECK:           <dict>
>> -// CHECK:            <key>line</key><integer>82</integer>
>> +// CHECK:            <key>line</key><integer>80</integer>
>> // CHECK:            <key>col</key><integer>1</integer>
>> // CHECK:            <key>file</key><integer>0</integer>
>> // CHECK:           </dict>
>> @@ -2319,12 +2443,12 @@
>> // CHECK:         <key>end</key>
>> // CHECK:          <array>
>> // CHECK:           <dict>
>> -// CHECK:            <key>line</key><integer>83</integer>
>> +// CHECK:            <key>line</key><integer>81</integer>
>> // CHECK:            <key>col</key><integer>5</integer>
>> // CHECK:            <key>file</key><integer>0</integer>
>> // CHECK:           </dict>
>> // CHECK:           <dict>
>> -// CHECK:            <key>line</key><integer>83</integer>
>> +// CHECK:            <key>line</key><integer>81</integer>
>> // CHECK:            <key>col</key><integer>5</integer>
>> // CHECK:            <key>file</key><integer>0</integer>
>> // CHECK:           </dict>
>> @@ -2340,12 +2464,12 @@
>> // CHECK:         <key>start</key>
>> // CHECK:          <array>
>> // CHECK:           <dict>
>> -// CHECK:            <key>line</key><integer>83</integer>
>> +// CHECK:            <key>line</key><integer>81</integer>
>> // CHECK:            <key>col</key><integer>5</integer>
>> // CHECK:            <key>file</key><integer>0</integer>
>> // CHECK:           </dict>
>> // CHECK:           <dict>
>> -// CHECK:            <key>line</key><integer>83</integer>
>> +// CHECK:            <key>line</key><integer>81</integer>
>> // CHECK:            <key>col</key><integer>5</integer>
>> // CHECK:            <key>file</key><integer>0</integer>
>> // CHECK:           </dict>
>> @@ -2353,12 +2477,12 @@
>> // CHECK:         <key>end</key>
>> // CHECK:          <array>
>> // CHECK:           <dict>
>> -// CHECK:            <key>line</key><integer>83</integer>
>> +// CHECK:            <key>line</key><integer>81</integer>
>> // CHECK:            <key>col</key><integer>19</integer>
>> // CHECK:            <key>file</key><integer>0</integer>
>> // CHECK:           </dict>
>> // CHECK:           <dict>
>> -// CHECK:            <key>line</key><integer>83</integer>
>> +// CHECK:            <key>line</key><integer>81</integer>
>> // CHECK:            <key>col</key><integer>28</integer>
>> // CHECK:            <key>file</key><integer>0</integer>
>> // CHECK:           </dict>
>> @@ -2370,7 +2494,7 @@
>> // CHECK:      <key>kind</key><string>event</string>
>> // CHECK:      <key>location</key>
>> // CHECK:      <dict>
>> -// CHECK:       <key>line</key><integer>83</integer>
>> +// CHECK:       <key>line</key><integer>81</integer>
>> // CHECK:       <key>col</key><integer>19</integer>
>> // CHECK:       <key>file</key><integer>0</integer>
>> // CHECK:      </dict>
>> @@ -2378,12 +2502,12 @@
>> // CHECK:      <array>
>> // CHECK:        <array>
>> // CHECK:         <dict>
>> -// CHECK:          <key>line</key><integer>83</integer>
>> +// CHECK:          <key>line</key><integer>81</integer>
>> // CHECK:          <key>col</key><integer>19</integer>
>> // CHECK:          <key>file</key><integer>0</integer>
>> // CHECK:         </dict>
>> // CHECK:         <dict>
>> -// CHECK:          <key>line</key><integer>83</integer>
>> +// CHECK:          <key>line</key><integer>81</integer>
>> // CHECK:          <key>col</key><integer>28</integer>
>> // CHECK:          <key>file</key><integer>0</integer>
>> // CHECK:         </dict>
>> @@ -2399,7 +2523,7 @@
>> // CHECK:      <key>kind</key><string>event</string>
>> // CHECK:      <key>location</key>
>> // CHECK:      <dict>
>> -// CHECK:       <key>line</key><integer>87</integer>
>> +// CHECK:       <key>line</key><integer>85</integer>
>> // CHECK:       <key>col</key><integer>9</integer>
>> // CHECK:       <key>file</key><integer>0</integer>
>> // CHECK:      </dict>
>> @@ -2407,12 +2531,12 @@
>> // CHECK:      <array>
>> // CHECK:        <array>
>> // CHECK:         <dict>
>> -// CHECK:          <key>line</key><integer>87</integer>
>> +// CHECK:          <key>line</key><integer>85</integer>
>> // CHECK:          <key>col</key><integer>9</integer>
>> // CHECK:          <key>file</key><integer>0</integer>
>> // CHECK:         </dict>
>> // CHECK:         <dict>
>> -// CHECK:          <key>line</key><integer>87</integer>
>> +// CHECK:          <key>line</key><integer>85</integer>
>> // CHECK:          <key>col</key><integer>28</integer>
>> // CHECK:          <key>file</key><integer>0</integer>
>> // CHECK:         </dict>
>> @@ -2432,12 +2556,12 @@
>> // CHECK:         <key>start</key>
>> // CHECK:          <array>
>> // CHECK:           <dict>
>> -// CHECK:            <key>line</key><integer>87</integer>
>> +// CHECK:            <key>line</key><integer>85</integer>
>> // CHECK:            <key>col</key><integer>9</integer>
>> // CHECK:            <key>file</key><integer>0</integer>
>> // CHECK:           </dict>
>> // CHECK:           <dict>
>> -// CHECK:            <key>line</key><integer>87</integer>
>> +// CHECK:            <key>line</key><integer>85</integer>
>> // CHECK:            <key>col</key><integer>28</integer>
>> // CHECK:            <key>file</key><integer>0</integer>
>> // CHECK:           </dict>
>> @@ -2445,12 +2569,12 @@
>> // CHECK:         <key>end</key>
>> // CHECK:          <array>
>> // CHECK:           <dict>
>> -// CHECK:            <key>line</key><integer>88</integer>
>> +// CHECK:            <key>line</key><integer>86</integer>
>> // CHECK:            <key>col</key><integer>1</integer>
>> // CHECK:            <key>file</key><integer>0</integer>
>> // CHECK:           </dict>
>> // CHECK:           <dict>
>> -// CHECK:            <key>line</key><integer>88</integer>
>> +// CHECK:            <key>line</key><integer>86</integer>
>> // CHECK:            <key>col</key><integer>1</integer>
>> // CHECK:            <key>file</key><integer>0</integer>
>> // CHECK:           </dict>
>> @@ -2462,7 +2586,7 @@
>> // CHECK:      <key>kind</key><string>event</string>
>> // CHECK:      <key>location</key>
>> // CHECK:      <dict>
>> -// CHECK:       <key>line</key><integer>88</integer>
>> +// CHECK:       <key>line</key><integer>86</integer>
>> // CHECK:       <key>col</key><integer>1</integer>
>> // CHECK:       <key>file</key><integer>0</integer>
>> // CHECK:      </dict>
>> @@ -2478,7 +2602,7 @@
>> // CHECK:    <key>type</key><string>Memory leak</string>
>> // CHECK:   <key>location</key>
>> // CHECK:   <dict>
>> -// CHECK:    <key>line</key><integer>88</integer>
>> +// CHECK:    <key>line</key><integer>86</integer>
>> // CHECK:    <key>col</key><integer>1</integer>
>> // CHECK:    <key>file</key><integer>0</integer>
>> // CHECK:   </dict>
>> 
>> 
>> _______________________________________________
>> cfe-commits mailing list
>> cfe-commits at cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
> 





More information about the cfe-commits mailing list