r350867 - [analyzer] Quote the type of the leaked/problematic object in diagnostics for readability

George Karpenkov via cfe-commits cfe-commits at lists.llvm.org
Thu Jan 10 10:15:58 PST 2019


Author: george.karpenkov
Date: Thu Jan 10 10:15:57 2019
New Revision: 350867

URL: http://llvm.org/viewvc/llvm-project?rev=350867&view=rev
Log:
[analyzer] Quote the type of the leaked/problematic object in diagnostics for readability

Differential Revision: https://reviews.llvm.org/D56344

Modified:
    cfe/trunk/lib/StaticAnalyzer/Checkers/RetainCountChecker/RetainCountDiagnostics.cpp
    cfe/trunk/test/Analysis/Inputs/expected-plists/edges-new.mm.plist
    cfe/trunk/test/Analysis/Inputs/expected-plists/objc-arc.m.plist
    cfe/trunk/test/Analysis/Inputs/expected-plists/objc-radar17039661.m.plist
    cfe/trunk/test/Analysis/Inputs/expected-plists/plist-output-alternate.m.plist
    cfe/trunk/test/Analysis/Inputs/expected-plists/retain-release-path-notes.m.plist
    cfe/trunk/test/Analysis/objc-radar17039661.m
    cfe/trunk/test/Analysis/osobject-retain-release.cpp
    cfe/trunk/test/Analysis/retain-release-arc.m
    cfe/trunk/test/Analysis/retain-release-path-notes.m
    cfe/trunk/test/Analysis/retaincountchecker-compoundregion.m

Modified: cfe/trunk/lib/StaticAnalyzer/Checkers/RetainCountChecker/RetainCountDiagnostics.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/StaticAnalyzer/Checkers/RetainCountChecker/RetainCountDiagnostics.cpp?rev=350867&r1=350866&r2=350867&view=diff
==============================================================================
--- cfe/trunk/lib/StaticAnalyzer/Checkers/RetainCountChecker/RetainCountDiagnostics.cpp (original)
+++ cfe/trunk/lib/StaticAnalyzer/Checkers/RetainCountChecker/RetainCountDiagnostics.cpp Thu Jan 10 10:15:57 2019
@@ -157,14 +157,14 @@ static void generateDiagnosticsForCallLi
   }
 
   if (CurrV.getObjKind() == ObjKind::CF) {
-    os << " returns a Core Foundation object of type "
-       << Sym->getType().getAsString() << " with a ";
+    os << " a Core Foundation object of type '"
+       << Sym->getType().getAsString() << "' with a ";
   } else if (CurrV.getObjKind() == ObjKind::OS) {
-    os << " returns an OSObject of type " << getPrettyTypeName(Sym->getType())
-       << " with a ";
+    os << " an OSObject of type '" << getPrettyTypeName(Sym->getType())
+       << "' with a ";
   } else if (CurrV.getObjKind() == ObjKind::Generalized) {
-    os << " returns an object of type " << Sym->getType().getAsString()
-       << " with a ";
+    os << " an object of type '" << Sym->getType().getAsString()
+       << "' with a ";
   } else {
     assert(CurrV.getObjKind() == ObjKind::ObjC);
     QualType T = Sym->getType();
@@ -587,7 +587,8 @@ CFRefLeakReportVisitor::getEndPath(BugRe
   if (RegionDescription) {
     os << "object allocated and stored into '" << *RegionDescription << '\'';
   } else {
-    os << "allocated object of type " << getPrettyTypeName(Sym->getType());
+    os << "allocated object of type '" << getPrettyTypeName(Sym->getType())
+       << "'";
   }
 
   // Get the retain count.
@@ -724,7 +725,7 @@ void CFRefLeakReport::createDescription(
   } else {
 
     // If we can't figure out the name, just supply the type information.
-    os << " of type " << getPrettyTypeName(Sym->getType());
+    os << " of type '" << getPrettyTypeName(Sym->getType()) << "'";
   }
 }
 

Modified: cfe/trunk/test/Analysis/Inputs/expected-plists/edges-new.mm.plist
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Analysis/Inputs/expected-plists/edges-new.mm.plist?rev=350867&r1=350866&r2=350867&view=diff
==============================================================================
--- cfe/trunk/test/Analysis/Inputs/expected-plists/edges-new.mm.plist (original)
+++ cfe/trunk/test/Analysis/Inputs/expected-plists/edges-new.mm.plist Thu Jan 10 10:15:57 2019
@@ -1933,9 +1933,9 @@
      </array>
      <key>depth</key><integer>0</integer>
      <key>extended_message</key>
-     <string>Call to function 'CFNumberCreate' returns a Core Foundation object of type CFNumberRef with a +1 retain count</string>
+     <string>Call to function 'CFNumberCreate' returns a Core Foundation object of type 'CFNumberRef' with a +1 retain count</string>
      <key>message</key>
-     <string>Call to function 'CFNumberCreate' returns a Core Foundation object of type CFNumberRef with a +1 retain count</string>
+     <string>Call to function 'CFNumberCreate' returns a Core Foundation object of type 'CFNumberRef' with a +1 retain count</string>
     </dict>
     <dict>
      <key>kind</key><string>control</string>

Modified: cfe/trunk/test/Analysis/Inputs/expected-plists/objc-arc.m.plist
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Analysis/Inputs/expected-plists/objc-arc.m.plist?rev=350867&r1=350866&r2=350867&view=diff
==============================================================================
--- cfe/trunk/test/Analysis/Inputs/expected-plists/objc-arc.m.plist (original)
+++ cfe/trunk/test/Analysis/Inputs/expected-plists/objc-arc.m.plist Thu Jan 10 10:15:57 2019
@@ -223,9 +223,9 @@
      </array>
      <key>depth</key><integer>0</integer>
      <key>extended_message</key>
-     <string>Call to function 'CFDateCreate' returns a Core Foundation object of type CFDateRef with a +1 retain count</string>
+     <string>Call to function 'CFDateCreate' returns a Core Foundation object of type 'CFDateRef' with a +1 retain count</string>
      <key>message</key>
-     <string>Call to function 'CFDateCreate' returns a Core Foundation object of type CFDateRef with a +1 retain count</string>
+     <string>Call to function 'CFDateCreate' returns a Core Foundation object of type 'CFDateRef' with a +1 retain count</string>
     </dict>
     <dict>
      <key>kind</key><string>control</string>
@@ -739,9 +739,9 @@
      </array>
      <key>depth</key><integer>0</integer>
      <key>extended_message</key>
-     <string>Call to function 'CFCreateSomething' returns a Core Foundation object of type CFTypeRef with a +1 retain count</string>
+     <string>Call to function 'CFCreateSomething' returns a Core Foundation object of type 'CFTypeRef' with a +1 retain count</string>
      <key>message</key>
-     <string>Call to function 'CFCreateSomething' returns a Core Foundation object of type CFTypeRef with a +1 retain count</string>
+     <string>Call to function 'CFCreateSomething' returns a Core Foundation object of type 'CFTypeRef' with a +1 retain count</string>
     </dict>
     <dict>
      <key>kind</key><string>control</string>
@@ -934,9 +934,9 @@
      </array>
      <key>depth</key><integer>0</integer>
      <key>extended_message</key>
-     <string>Call to function 'CFCreateString' returns a Core Foundation object of type CFStringRef with a +1 retain count</string>
+     <string>Call to function 'CFCreateString' returns a Core Foundation object of type 'CFStringRef' with a +1 retain count</string>
      <key>message</key>
-     <string>Call to function 'CFCreateString' returns a Core Foundation object of type CFStringRef with a +1 retain count</string>
+     <string>Call to function 'CFCreateString' returns a Core Foundation object of type 'CFStringRef' with a +1 retain count</string>
     </dict>
     <dict>
      <key>kind</key><string>control</string>
@@ -1353,9 +1353,9 @@
      </array>
      <key>depth</key><integer>0</integer>
      <key>extended_message</key>
-     <string>Call to function 'CFDateCreate' returns a Core Foundation object of type CFDateRef with a +1 retain count</string>
+     <string>Call to function 'CFDateCreate' returns a Core Foundation object of type 'CFDateRef' with a +1 retain count</string>
      <key>message</key>
-     <string>Call to function 'CFDateCreate' returns a Core Foundation object of type CFDateRef with a +1 retain count</string>
+     <string>Call to function 'CFDateCreate' returns a Core Foundation object of type 'CFDateRef' with a +1 retain count</string>
     </dict>
     <dict>
      <key>kind</key><string>control</string>
@@ -1679,9 +1679,9 @@
      </array>
      <key>depth</key><integer>0</integer>
      <key>extended_message</key>
-     <string>Call to function 'CFCreateString' returns a Core Foundation object of type CFStringRef with a +1 retain count</string>
+     <string>Call to function 'CFCreateString' returns a Core Foundation object of type 'CFStringRef' with a +1 retain count</string>
      <key>message</key>
-     <string>Call to function 'CFCreateString' returns a Core Foundation object of type CFStringRef with a +1 retain count</string>
+     <string>Call to function 'CFCreateString' returns a Core Foundation object of type 'CFStringRef' with a +1 retain count</string>
     </dict>
     <dict>
      <key>kind</key><string>control</string>
@@ -1727,12 +1727,12 @@
      </dict>
      <key>depth</key><integer>0</integer>
      <key>extended_message</key>
-     <string>Object leaked: allocated object of type CFStringRef is not referenced later in this execution path and has a retain count of +1</string>
+     <string>Object leaked: allocated object of type 'CFStringRef' is not referenced later in this execution path and has a retain count of +1</string>
      <key>message</key>
-     <string>Object leaked: allocated object of type CFStringRef is not referenced later in this execution path and has a retain count of +1</string>
+     <string>Object leaked: allocated object of type 'CFStringRef' is not referenced later in this execution path and has a retain count of +1</string>
     </dict>
    </array>
-   <key>description</key><string>Potential leak of an object of type CFStringRef</string>
+   <key>description</key><string>Potential leak of an object of type 'CFStringRef'</string>
    <key>category</key><string>Memory (Core Foundation/Objective-C)</string>
    <key>type</key><string>Leak</string>
    <key>check_name</key><string>osx.cocoa.RetainCount</string>

Modified: cfe/trunk/test/Analysis/Inputs/expected-plists/objc-radar17039661.m.plist
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Analysis/Inputs/expected-plists/objc-radar17039661.m.plist?rev=350867&r1=350866&r2=350867&view=diff
==============================================================================
--- cfe/trunk/test/Analysis/Inputs/expected-plists/objc-radar17039661.m.plist (original)
+++ cfe/trunk/test/Analysis/Inputs/expected-plists/objc-radar17039661.m.plist Thu Jan 10 10:15:57 2019
@@ -1,1275 +1,1309 @@
-<key>diagnostics</key>
-<array>
- <dict>
-  <key>path</key>
-  <array>
-   <dict>
-    <key>kind</key><string>control</string>
-    <key>edges</key>
-     <array>
-      <dict>
-       <key>start</key>
-        <array>
-         <dict>
-          <key>line</key><integer>48</integer>
-          <key>col</key><integer>3</integer>
-          <key>file</key><integer>0</integer>
-         </dict>
-         <dict>
-          <key>line</key><integer>48</integer>
-          <key>col</key><integer>15</integer>
-          <key>file</key><integer>0</integer>
-         </dict>
-        </array>
-       <key>end</key>
-        <array>
-         <dict>
-          <key>line</key><integer>49</integer>
-          <key>col</key><integer>3</integer>
-          <key>file</key><integer>0</integer>
-         </dict>
-         <dict>
-          <key>line</key><integer>49</integer>
-          <key>col</key><integer>6</integer>
-          <key>file</key><integer>0</integer>
-         </dict>
-        </array>
-      </dict>
-     </array>
-   </dict>
-   <dict>
-    <key>kind</key><string>control</string>
-    <key>edges</key>
-     <array>
-      <dict>
-       <key>start</key>
-        <array>
-         <dict>
-          <key>line</key><integer>49</integer>
-          <key>col</key><integer>3</integer>
-          <key>file</key><integer>0</integer>
-         </dict>
-         <dict>
-          <key>line</key><integer>49</integer>
-          <key>col</key><integer>6</integer>
-          <key>file</key><integer>0</integer>
-         </dict>
-        </array>
-       <key>end</key>
-        <array>
-         <dict>
-          <key>line</key><integer>49</integer>
-          <key>col</key><integer>26</integer>
-          <key>file</key><integer>0</integer>
-         </dict>
-         <dict>
-          <key>line</key><integer>49</integer>
-          <key>col</key><integer>38</integer>
-          <key>file</key><integer>0</integer>
-         </dict>
-        </array>
-      </dict>
-     </array>
-   </dict>
-   <dict>
-    <key>kind</key><string>event</string>
-    <key>location</key>
-    <dict>
-     <key>line</key><integer>49</integer>
-     <key>col</key><integer>26</integer>
-     <key>file</key><integer>0</integer>
-    </dict>
-    <key>ranges</key>
-    <array>
-      <array>
-       <dict>
-        <key>line</key><integer>49</integer>
-        <key>col</key><integer>26</integer>
-        <key>file</key><integer>0</integer>
-       </dict>
-       <dict>
-        <key>line</key><integer>53</integer>
-        <key>col</key><integer>4</integer>
-        <key>file</key><integer>0</integer>
-       </dict>
-      </array>
-    </array>
-    <key>depth</key><integer>0</integer>
-    <key>extended_message</key>
-    <string>Calling 'performAction'</string>
-    <key>message</key>
-    <string>Calling 'performAction'</string>
-   </dict>
-   <dict>
-    <key>kind</key><string>event</string>
-    <key>location</key>
-    <dict>
-     <key>line</key><integer>27</integer>
-     <key>col</key><integer>1</integer>
-     <key>file</key><integer>0</integer>
-    </dict>
-    <key>depth</key><integer>1</integer>
-    <key>extended_message</key>
-    <string>Entered call from 'runTest'</string>
-    <key>message</key>
-    <string>Entered call from 'runTest'</string>
-   </dict>
-   <dict>
-    <key>kind</key><string>control</string>
-    <key>edges</key>
-     <array>
-      <dict>
-       <key>start</key>
-        <array>
-         <dict>
-          <key>line</key><integer>27</integer>
-          <key>col</key><integer>1</integer>
-          <key>file</key><integer>0</integer>
-         </dict>
-         <dict>
-          <key>line</key><integer>27</integer>
-          <key>col</key><integer>6</integer>
-          <key>file</key><integer>0</integer>
-         </dict>
-        </array>
-       <key>end</key>
-        <array>
-         <dict>
-          <key>line</key><integer>28</integer>
-          <key>col</key><integer>3</integer>
-          <key>file</key><integer>0</integer>
-         </dict>
-         <dict>
-          <key>line</key><integer>28</integer>
-          <key>col</key><integer>15</integer>
-          <key>file</key><integer>0</integer>
-         </dict>
-        </array>
-      </dict>
-     </array>
-   </dict>
-   <dict>
-    <key>kind</key><string>control</string>
-    <key>edges</key>
-     <array>
-      <dict>
-       <key>start</key>
-        <array>
-         <dict>
-          <key>line</key><integer>28</integer>
-          <key>col</key><integer>3</integer>
-          <key>file</key><integer>0</integer>
-         </dict>
-         <dict>
-          <key>line</key><integer>28</integer>
-          <key>col</key><integer>15</integer>
-          <key>file</key><integer>0</integer>
-         </dict>
-        </array>
-       <key>end</key>
-        <array>
-         <dict>
-          <key>line</key><integer>29</integer>
-          <key>col</key><integer>3</integer>
-          <key>file</key><integer>0</integer>
-         </dict>
-         <dict>
-          <key>line</key><integer>29</integer>
-          <key>col</key><integer>21</integer>
-          <key>file</key><integer>0</integer>
-         </dict>
-        </array>
-      </dict>
-     </array>
-   </dict>
-   <dict>
-    <key>kind</key><string>event</string>
-    <key>location</key>
-    <dict>
-     <key>line</key><integer>29</integer>
-     <key>col</key><integer>3</integer>
-     <key>file</key><integer>0</integer>
-    </dict>
-    <key>ranges</key>
-    <array>
-      <array>
-       <dict>
-        <key>line</key><integer>29</integer>
-        <key>col</key><integer>3</integer>
-        <key>file</key><integer>0</integer>
-       </dict>
-       <dict>
-        <key>line</key><integer>43</integer>
-        <key>col</key><integer>4</integer>
-        <key>file</key><integer>0</integer>
-       </dict>
-      </array>
-    </array>
-    <key>depth</key><integer>1</integer>
-    <key>extended_message</key>
-    <string>Calling 'reallyPerformAction'</string>
-    <key>message</key>
-    <string>Calling 'reallyPerformAction'</string>
-   </dict>
-   <dict>
-    <key>kind</key><string>event</string>
-    <key>location</key>
-    <dict>
-     <key>line</key><integer>22</integer>
-     <key>col</key><integer>1</integer>
-     <key>file</key><integer>0</integer>
-    </dict>
-    <key>depth</key><integer>2</integer>
-    <key>extended_message</key>
-    <string>Entered call from 'performAction'</string>
-    <key>message</key>
-    <string>Entered call from 'performAction'</string>
-   </dict>
-   <dict>
-    <key>kind</key><string>control</string>
-    <key>edges</key>
-     <array>
-      <dict>
-       <key>start</key>
-        <array>
-         <dict>
-          <key>line</key><integer>22</integer>
-          <key>col</key><integer>1</integer>
-          <key>file</key><integer>0</integer>
-         </dict>
-         <dict>
-          <key>line</key><integer>22</integer>
-          <key>col</key><integer>6</integer>
-          <key>file</key><integer>0</integer>
-         </dict>
-        </array>
-       <key>end</key>
-        <array>
-         <dict>
-          <key>line</key><integer>23</integer>
-          <key>col</key><integer>3</integer>
-          <key>file</key><integer>0</integer>
-         </dict>
-         <dict>
-          <key>line</key><integer>23</integer>
-          <key>col</key><integer>16</integer>
-          <key>file</key><integer>0</integer>
-         </dict>
-        </array>
-      </dict>
-     </array>
-   </dict>
-   <dict>
-    <key>kind</key><string>event</string>
-    <key>location</key>
-    <dict>
-     <key>line</key><integer>23</integer>
-     <key>col</key><integer>3</integer>
-     <key>file</key><integer>0</integer>
-    </dict>
-    <key>ranges</key>
-    <array>
-      <array>
-       <dict>
-        <key>line</key><integer>23</integer>
-        <key>col</key><integer>3</integer>
-        <key>file</key><integer>0</integer>
-       </dict>
-       <dict>
-        <key>line</key><integer>23</integer>
-        <key>col</key><integer>58</integer>
-        <key>file</key><integer>0</integer>
-       </dict>
-      </array>
-    </array>
-    <key>depth</key><integer>2</integer>
-    <key>extended_message</key>
-    <string>Calling anonymous block</string>
-    <key>message</key>
-    <string>Calling anonymous block</string>
-   </dict>
-   <dict>
-    <key>kind</key><string>event</string>
-    <key>location</key>
-    <dict>
-     <key>line</key><integer>29</integer>
-     <key>col</key><integer>23</integer>
-     <key>file</key><integer>0</integer>
-    </dict>
-    <key>depth</key><integer>3</integer>
-    <key>extended_message</key>
-    <string>Entered call from 'reallyPerformAction'</string>
-    <key>message</key>
-    <string>Entered call from 'reallyPerformAction'</string>
-   </dict>
-   <dict>
-    <key>kind</key><string>control</string>
-    <key>edges</key>
-     <array>
-      <dict>
-       <key>start</key>
-        <array>
-         <dict>
-          <key>line</key><integer>29</integer>
-          <key>col</key><integer>23</integer>
-          <key>file</key><integer>0</integer>
-         </dict>
-         <dict>
-          <key>line</key><integer>29</integer>
-          <key>col</key><integer>23</integer>
-          <key>file</key><integer>0</integer>
-         </dict>
-        </array>
-       <key>end</key>
-        <array>
-         <dict>
-          <key>line</key><integer>31</integer>
-          <key>col</key><integer>5</integer>
-          <key>file</key><integer>0</integer>
-         </dict>
-         <dict>
-          <key>line</key><integer>31</integer>
-          <key>col</key><integer>6</integer>
-          <key>file</key><integer>0</integer>
-         </dict>
-        </array>
-      </dict>
-     </array>
-   </dict>
-   <dict>
-    <key>kind</key><string>control</string>
-    <key>edges</key>
-     <array>
-      <dict>
-       <key>start</key>
-        <array>
-         <dict>
-          <key>line</key><integer>31</integer>
-          <key>col</key><integer>5</integer>
-          <key>file</key><integer>0</integer>
-         </dict>
-         <dict>
-          <key>line</key><integer>31</integer>
-          <key>col</key><integer>6</integer>
-          <key>file</key><integer>0</integer>
-         </dict>
-        </array>
-       <key>end</key>
-        <array>
-         <dict>
-          <key>line</key><integer>31</integer>
-          <key>col</key><integer>9</integer>
-          <key>file</key><integer>0</integer>
-         </dict>
-         <dict>
-          <key>line</key><integer>31</integer>
-          <key>col</key><integer>12</integer>
-          <key>file</key><integer>0</integer>
-         </dict>
-        </array>
-      </dict>
-     </array>
-   </dict>
-   <dict>
-    <key>kind</key><string>event</string>
-    <key>location</key>
-    <dict>
-     <key>line</key><integer>31</integer>
-     <key>col</key><integer>9</integer>
-     <key>file</key><integer>0</integer>
-    </dict>
-    <key>ranges</key>
-    <array>
-      <array>
-       <dict>
-        <key>line</key><integer>31</integer>
-        <key>col</key><integer>9</integer>
-        <key>file</key><integer>0</integer>
-       </dict>
-       <dict>
-        <key>line</key><integer>31</integer>
-        <key>col</key><integer>12</integer>
-        <key>file</key><integer>0</integer>
-       </dict>
-      </array>
-    </array>
-    <key>depth</key><integer>3</integer>
-    <key>extended_message</key>
-    <string>Assuming 'cond' is not equal to 0</string>
-    <key>message</key>
-    <string>Assuming 'cond' is not equal to 0</string>
-   </dict>
-   <dict>
-    <key>kind</key><string>control</string>
-    <key>edges</key>
-     <array>
-      <dict>
-       <key>start</key>
-        <array>
-         <dict>
-          <key>line</key><integer>31</integer>
-          <key>col</key><integer>9</integer>
-          <key>file</key><integer>0</integer>
-         </dict>
-         <dict>
-          <key>line</key><integer>31</integer>
-          <key>col</key><integer>12</integer>
-          <key>file</key><integer>0</integer>
-         </dict>
-        </array>
-       <key>end</key>
-        <array>
-         <dict>
-          <key>line</key><integer>33</integer>
-          <key>col</key><integer>7</integer>
-          <key>file</key><integer>0</integer>
-         </dict>
-         <dict>
-          <key>line</key><integer>33</integer>
-          <key>col</key><integer>14</integer>
-          <key>file</key><integer>0</integer>
-         </dict>
-        </array>
-      </dict>
-     </array>
-   </dict>
-   <dict>
-    <key>kind</key><string>event</string>
-    <key>location</key>
-    <dict>
-     <key>line</key><integer>33</integer>
-     <key>col</key><integer>30</integer>
-     <key>file</key><integer>0</integer>
-    </dict>
-    <key>ranges</key>
-    <array>
-      <array>
-       <dict>
-        <key>line</key><integer>33</integer>
-        <key>col</key><integer>30</integer>
-        <key>file</key><integer>0</integer>
-       </dict>
-       <dict>
-        <key>line</key><integer>33</integer>
-        <key>col</key><integer>50</integer>
-        <key>file</key><integer>0</integer>
-       </dict>
-      </array>
-    </array>
-    <key>depth</key><integer>3</integer>
-    <key>extended_message</key>
-    <string>NSNumber boxed expression produces an object with a +0 retain count</string>
-    <key>message</key>
-    <string>NSNumber boxed expression produces an object with a +0 retain count</string>
-   </dict>
-   <dict>
-    <key>kind</key><string>control</string>
-    <key>edges</key>
-     <array>
-      <dict>
-       <key>start</key>
-        <array>
-         <dict>
-          <key>line</key><integer>33</integer>
-          <key>col</key><integer>7</integer>
-          <key>file</key><integer>0</integer>
-         </dict>
-         <dict>
-          <key>line</key><integer>33</integer>
-          <key>col</key><integer>14</integer>
-          <key>file</key><integer>0</integer>
-         </dict>
-        </array>
-       <key>end</key>
-        <array>
-         <dict>
-          <key>line</key><integer>35</integer>
-          <key>col</key><integer>7</integer>
-          <key>file</key><integer>0</integer>
-         </dict>
-         <dict>
-          <key>line</key><integer>35</integer>
-          <key>col</key><integer>14</integer>
-          <key>file</key><integer>0</integer>
-         </dict>
-        </array>
-      </dict>
-     </array>
-   </dict>
-   <dict>
-    <key>kind</key><string>control</string>
-    <key>edges</key>
-     <array>
-      <dict>
-       <key>start</key>
-        <array>
-         <dict>
-          <key>line</key><integer>35</integer>
-          <key>col</key><integer>7</integer>
-          <key>file</key><integer>0</integer>
-         </dict>
-         <dict>
-          <key>line</key><integer>35</integer>
-          <key>col</key><integer>14</integer>
-          <key>file</key><integer>0</integer>
-         </dict>
-        </array>
-       <key>end</key>
-        <array>
-         <dict>
-          <key>line</key><integer>35</integer>
-          <key>col</key><integer>33</integer>
-          <key>file</key><integer>0</integer>
-         </dict>
-         <dict>
-          <key>line</key><integer>35</integer>
-          <key>col</key><integer>38</integer>
-          <key>file</key><integer>0</integer>
-         </dict>
-        </array>
-      </dict>
-     </array>
-   </dict>
-   <dict>
-    <key>kind</key><string>event</string>
-    <key>location</key>
-    <dict>
-     <key>line</key><integer>35</integer>
-     <key>col</key><integer>33</integer>
-     <key>file</key><integer>0</integer>
-    </dict>
-    <key>ranges</key>
-    <array>
-      <array>
-       <dict>
-        <key>line</key><integer>35</integer>
-        <key>col</key><integer>33</integer>
-        <key>file</key><integer>0</integer>
-       </dict>
-       <dict>
-        <key>line</key><integer>35</integer>
-        <key>col</key><integer>50</integer>
-        <key>file</key><integer>0</integer>
-       </dict>
-      </array>
-    </array>
-    <key>depth</key><integer>3</integer>
-    <key>extended_message</key>
-    <string>Calling anonymous block</string>
-    <key>message</key>
-    <string>Calling anonymous block</string>
-   </dict>
-   <dict>
-    <key>kind</key><string>event</string>
-    <key>location</key>
-    <dict>
-     <key>line</key><integer>49</integer>
-     <key>col</key><integer>40</integer>
-     <key>file</key><integer>0</integer>
-    </dict>
-    <key>depth</key><integer>4</integer>
-    <key>extended_message</key>
-    <string>Entered call</string>
-    <key>message</key>
-    <string>Entered call</string>
-   </dict>
-   <dict>
-    <key>kind</key><string>control</string>
-    <key>edges</key>
-     <array>
-      <dict>
-       <key>start</key>
-        <array>
-         <dict>
-          <key>line</key><integer>49</integer>
-          <key>col</key><integer>40</integer>
-          <key>file</key><integer>0</integer>
-         </dict>
-         <dict>
-          <key>line</key><integer>49</integer>
-          <key>col</key><integer>40</integer>
-          <key>file</key><integer>0</integer>
-         </dict>
-        </array>
-       <key>end</key>
-        <array>
-         <dict>
-          <key>line</key><integer>50</integer>
-          <key>col</key><integer>5</integer>
-          <key>file</key><integer>0</integer>
-         </dict>
-         <dict>
-          <key>line</key><integer>50</integer>
-          <key>col</key><integer>17</integer>
-          <key>file</key><integer>0</integer>
-         </dict>
-        </array>
-      </dict>
-     </array>
-   </dict>
-   <dict>
-    <key>kind</key><string>event</string>
-    <key>location</key>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>clang_version</key>
+<string>clang version 8.0.0 </string>
+ <key>diagnostics</key>
+ <array>
+  <dict>
+   <key>path</key>
+   <array>
     <dict>
-     <key>line</key><integer>50</integer>
-     <key>col</key><integer>21</integer>
-     <key>file</key><integer>0</integer>
+     <key>kind</key><string>control</string>
+     <key>edges</key>
+      <array>
+       <dict>
+        <key>start</key>
+         <array>
+          <dict>
+           <key>line</key><integer>49</integer>
+           <key>col</key><integer>3</integer>
+           <key>file</key><integer>0</integer>
+          </dict>
+          <dict>
+           <key>line</key><integer>49</integer>
+           <key>col</key><integer>15</integer>
+           <key>file</key><integer>0</integer>
+          </dict>
+         </array>
+        <key>end</key>
+         <array>
+          <dict>
+           <key>line</key><integer>50</integer>
+           <key>col</key><integer>3</integer>
+           <key>file</key><integer>0</integer>
+          </dict>
+          <dict>
+           <key>line</key><integer>50</integer>
+           <key>col</key><integer>6</integer>
+           <key>file</key><integer>0</integer>
+          </dict>
+         </array>
+       </dict>
+      </array>
     </dict>
-    <key>ranges</key>
-    <array>
+    <dict>
+     <key>kind</key><string>control</string>
+     <key>edges</key>
       <array>
        <dict>
-        <key>line</key><integer>50</integer>
-        <key>col</key><integer>21</integer>
-        <key>file</key><integer>0</integer>
+        <key>start</key>
+         <array>
+          <dict>
+           <key>line</key><integer>50</integer>
+           <key>col</key><integer>3</integer>
+           <key>file</key><integer>0</integer>
+          </dict>
+          <dict>
+           <key>line</key><integer>50</integer>
+           <key>col</key><integer>6</integer>
+           <key>file</key><integer>0</integer>
+          </dict>
+         </array>
+        <key>end</key>
+         <array>
+          <dict>
+           <key>line</key><integer>50</integer>
+           <key>col</key><integer>26</integer>
+           <key>file</key><integer>0</integer>
+          </dict>
+          <dict>
+           <key>line</key><integer>50</integer>
+           <key>col</key><integer>38</integer>
+           <key>file</key><integer>0</integer>
+          </dict>
+         </array>
        </dict>
+      </array>
+    </dict>
+    <dict>
+     <key>kind</key><string>event</string>
+     <key>location</key>
+     <dict>
+      <key>line</key><integer>50</integer>
+      <key>col</key><integer>26</integer>
+      <key>file</key><integer>0</integer>
+     </dict>
+     <key>ranges</key>
+     <array>
+       <array>
+        <dict>
+         <key>line</key><integer>50</integer>
+         <key>col</key><integer>26</integer>
+         <key>file</key><integer>0</integer>
+        </dict>
+        <dict>
+         <key>line</key><integer>54</integer>
+         <key>col</key><integer>4</integer>
+         <key>file</key><integer>0</integer>
+        </dict>
+       </array>
+     </array>
+     <key>depth</key><integer>0</integer>
+     <key>extended_message</key>
+     <string>Calling 'performAction'</string>
+     <key>message</key>
+     <string>Calling 'performAction'</string>
+    </dict>
+    <dict>
+     <key>kind</key><string>event</string>
+     <key>location</key>
+     <dict>
+      <key>line</key><integer>28</integer>
+      <key>col</key><integer>1</integer>
+      <key>file</key><integer>0</integer>
+     </dict>
+     <key>depth</key><integer>1</integer>
+     <key>extended_message</key>
+     <string>Entered call from 'runTest'</string>
+     <key>message</key>
+     <string>Entered call from 'runTest'</string>
+    </dict>
+    <dict>
+     <key>kind</key><string>control</string>
+     <key>edges</key>
+      <array>
        <dict>
-        <key>line</key><integer>50</integer>
-        <key>col</key><integer>39</integer>
-        <key>file</key><integer>0</integer>
+        <key>start</key>
+         <array>
+          <dict>
+           <key>line</key><integer>28</integer>
+           <key>col</key><integer>1</integer>
+           <key>file</key><integer>0</integer>
+          </dict>
+          <dict>
+           <key>line</key><integer>28</integer>
+           <key>col</key><integer>6</integer>
+           <key>file</key><integer>0</integer>
+          </dict>
+         </array>
+        <key>end</key>
+         <array>
+          <dict>
+           <key>line</key><integer>29</integer>
+           <key>col</key><integer>3</integer>
+           <key>file</key><integer>0</integer>
+          </dict>
+          <dict>
+           <key>line</key><integer>29</integer>
+           <key>col</key><integer>15</integer>
+           <key>file</key><integer>0</integer>
+          </dict>
+         </array>
        </dict>
       </array>
+    </dict>
+    <dict>
+     <key>kind</key><string>control</string>
+     <key>edges</key>
       <array>
        <dict>
-        <key>line</key><integer>50</integer>
-        <key>col</key><integer>22</integer>
-        <key>file</key><integer>0</integer>
+        <key>start</key>
+         <array>
+          <dict>
+           <key>line</key><integer>29</integer>
+           <key>col</key><integer>3</integer>
+           <key>file</key><integer>0</integer>
+          </dict>
+          <dict>
+           <key>line</key><integer>29</integer>
+           <key>col</key><integer>15</integer>
+           <key>file</key><integer>0</integer>
+          </dict>
+         </array>
+        <key>end</key>
+         <array>
+          <dict>
+           <key>line</key><integer>30</integer>
+           <key>col</key><integer>3</integer>
+           <key>file</key><integer>0</integer>
+          </dict>
+          <dict>
+           <key>line</key><integer>30</integer>
+           <key>col</key><integer>21</integer>
+           <key>file</key><integer>0</integer>
+          </dict>
+         </array>
        </dict>
+      </array>
+    </dict>
+    <dict>
+     <key>kind</key><string>event</string>
+     <key>location</key>
+     <dict>
+      <key>line</key><integer>30</integer>
+      <key>col</key><integer>3</integer>
+      <key>file</key><integer>0</integer>
+     </dict>
+     <key>ranges</key>
+     <array>
+       <array>
+        <dict>
+         <key>line</key><integer>30</integer>
+         <key>col</key><integer>3</integer>
+         <key>file</key><integer>0</integer>
+        </dict>
+        <dict>
+         <key>line</key><integer>44</integer>
+         <key>col</key><integer>4</integer>
+         <key>file</key><integer>0</integer>
+        </dict>
+       </array>
+     </array>
+     <key>depth</key><integer>1</integer>
+     <key>extended_message</key>
+     <string>Calling 'reallyPerformAction'</string>
+     <key>message</key>
+     <string>Calling 'reallyPerformAction'</string>
+    </dict>
+    <dict>
+     <key>kind</key><string>event</string>
+     <key>location</key>
+     <dict>
+      <key>line</key><integer>23</integer>
+      <key>col</key><integer>1</integer>
+      <key>file</key><integer>0</integer>
+     </dict>
+     <key>depth</key><integer>2</integer>
+     <key>extended_message</key>
+     <string>Entered call from 'performAction'</string>
+     <key>message</key>
+     <string>Entered call from 'performAction'</string>
+    </dict>
+    <dict>
+     <key>kind</key><string>control</string>
+     <key>edges</key>
+      <array>
        <dict>
-        <key>line</key><integer>50</integer>
-        <key>col</key><integer>31</integer>
-        <key>file</key><integer>0</integer>
+        <key>start</key>
+         <array>
+          <dict>
+           <key>line</key><integer>23</integer>
+           <key>col</key><integer>1</integer>
+           <key>file</key><integer>0</integer>
+          </dict>
+          <dict>
+           <key>line</key><integer>23</integer>
+           <key>col</key><integer>6</integer>
+           <key>file</key><integer>0</integer>
+          </dict>
+         </array>
+        <key>end</key>
+         <array>
+          <dict>
+           <key>line</key><integer>24</integer>
+           <key>col</key><integer>3</integer>
+           <key>file</key><integer>0</integer>
+          </dict>
+          <dict>
+           <key>line</key><integer>24</integer>
+           <key>col</key><integer>16</integer>
+           <key>file</key><integer>0</integer>
+          </dict>
+         </array>
        </dict>
       </array>
-    </array>
-    <key>depth</key><integer>4</integer>
-    <key>extended_message</key>
-    <string>Reference count incremented. The object now has a +1 retain count</string>
-    <key>message</key>
-    <string>Reference count incremented. The object now has a +1 retain count</string>
-   </dict>
-   <dict>
-    <key>kind</key><string>control</string>
-    <key>edges</key>
-     <array>
-      <dict>
-       <key>start</key>
-        <array>
-         <dict>
-          <key>line</key><integer>50</integer>
-          <key>col</key><integer>5</integer>
-          <key>file</key><integer>0</integer>
-         </dict>
-         <dict>
-          <key>line</key><integer>50</integer>
-          <key>col</key><integer>17</integer>
-          <key>file</key><integer>0</integer>
-         </dict>
-        </array>
-       <key>end</key>
-        <array>
-         <dict>
-          <key>line</key><integer>52</integer>
-          <key>col</key><integer>5</integer>
-          <key>file</key><integer>0</integer>
-         </dict>
-         <dict>
-          <key>line</key><integer>52</integer>
-          <key>col</key><integer>10</integer>
-          <key>file</key><integer>0</integer>
-         </dict>
-        </array>
-      </dict>
-     </array>
-   </dict>
-   <dict>
-    <key>kind</key><string>event</string>
-    <key>location</key>
-    <dict>
-     <key>line</key><integer>35</integer>
-     <key>col</key><integer>33</integer>
-     <key>file</key><integer>0</integer>
-    </dict>
-    <key>ranges</key>
-    <array>
-      <array>
-       <dict>
-        <key>line</key><integer>35</integer>
-        <key>col</key><integer>33</integer>
-        <key>file</key><integer>0</integer>
-       </dict>
-       <dict>
-        <key>line</key><integer>35</integer>
-        <key>col</key><integer>50</integer>
-        <key>file</key><integer>0</integer>
-       </dict>
-      </array>
-    </array>
-    <key>depth</key><integer>3</integer>
-    <key>extended_message</key>
-    <string>Returning to caller</string>
-    <key>message</key>
-    <string>Returning to caller</string>
-   </dict>
-   <dict>
-    <key>kind</key><string>control</string>
-    <key>edges</key>
-     <array>
-      <dict>
-       <key>start</key>
-        <array>
-         <dict>
-          <key>line</key><integer>35</integer>
-          <key>col</key><integer>33</integer>
-          <key>file</key><integer>0</integer>
-         </dict>
-         <dict>
-          <key>line</key><integer>35</integer>
-          <key>col</key><integer>38</integer>
-          <key>file</key><integer>0</integer>
-         </dict>
-        </array>
-       <key>end</key>
-        <array>
-         <dict>
-          <key>line</key><integer>35</integer>
-          <key>col</key><integer>7</integer>
-          <key>file</key><integer>0</integer>
-         </dict>
-         <dict>
-          <key>line</key><integer>35</integer>
-          <key>col</key><integer>14</integer>
-          <key>file</key><integer>0</integer>
-         </dict>
-        </array>
-      </dict>
-     </array>
-   </dict>
-   <dict>
-    <key>kind</key><string>control</string>
-    <key>edges</key>
-     <array>
-      <dict>
-       <key>start</key>
-        <array>
-         <dict>
-          <key>line</key><integer>35</integer>
-          <key>col</key><integer>7</integer>
-          <key>file</key><integer>0</integer>
-         </dict>
-         <dict>
-          <key>line</key><integer>35</integer>
-          <key>col</key><integer>14</integer>
-          <key>file</key><integer>0</integer>
-         </dict>
-        </array>
-       <key>end</key>
-        <array>
-         <dict>
-          <key>line</key><integer>37</integer>
-          <key>col</key><integer>7</integer>
-          <key>file</key><integer>0</integer>
-         </dict>
-         <dict>
-          <key>line</key><integer>37</integer>
-          <key>col</key><integer>8</integer>
-          <key>file</key><integer>0</integer>
-         </dict>
-        </array>
-      </dict>
-     </array>
-   </dict>
-   <dict>
-    <key>kind</key><string>control</string>
-    <key>edges</key>
-     <array>
-      <dict>
-       <key>start</key>
-        <array>
-         <dict>
-          <key>line</key><integer>37</integer>
-          <key>col</key><integer>7</integer>
-          <key>file</key><integer>0</integer>
-         </dict>
-         <dict>
-          <key>line</key><integer>37</integer>
-          <key>col</key><integer>8</integer>
-          <key>file</key><integer>0</integer>
-         </dict>
-        </array>
-       <key>end</key>
-        <array>
-         <dict>
-          <key>line</key><integer>40</integer>
-          <key>col</key><integer>7</integer>
-          <key>file</key><integer>0</integer>
-         </dict>
-         <dict>
-          <key>line</key><integer>40</integer>
-          <key>col</key><integer>18</integer>
-          <key>file</key><integer>0</integer>
-         </dict>
-        </array>
-      </dict>
-     </array>
-   </dict>
-   <dict>
-    <key>kind</key><string>event</string>
-    <key>location</key>
-    <dict>
-     <key>line</key><integer>23</integer>
-     <key>col</key><integer>3</integer>
-     <key>file</key><integer>0</integer>
-    </dict>
-    <key>ranges</key>
-    <array>
-      <array>
-       <dict>
-        <key>line</key><integer>23</integer>
-        <key>col</key><integer>3</integer>
-        <key>file</key><integer>0</integer>
-       </dict>
-       <dict>
-        <key>line</key><integer>23</integer>
-        <key>col</key><integer>58</integer>
-        <key>file</key><integer>0</integer>
-       </dict>
-      </array>
-    </array>
-    <key>depth</key><integer>2</integer>
-    <key>extended_message</key>
-    <string>Returning to caller</string>
-    <key>message</key>
-    <string>Returning to caller</string>
-   </dict>
-   <dict>
-    <key>kind</key><string>control</string>
-    <key>edges</key>
-     <array>
-      <dict>
-       <key>start</key>
-        <array>
-         <dict>
-          <key>line</key><integer>23</integer>
-          <key>col</key><integer>3</integer>
-          <key>file</key><integer>0</integer>
-         </dict>
-         <dict>
-          <key>line</key><integer>23</integer>
-          <key>col</key><integer>16</integer>
-          <key>file</key><integer>0</integer>
-         </dict>
-        </array>
-       <key>end</key>
-        <array>
-         <dict>
-          <key>line</key><integer>24</integer>
-          <key>col</key><integer>3</integer>
-          <key>file</key><integer>0</integer>
-         </dict>
-         <dict>
-          <key>line</key><integer>24</integer>
-          <key>col</key><integer>16</integer>
-          <key>file</key><integer>0</integer>
-         </dict>
-        </array>
-      </dict>
-     </array>
-   </dict>
-   <dict>
-    <key>kind</key><string>event</string>
-    <key>location</key>
-    <dict>
-     <key>line</key><integer>24</integer>
-     <key>col</key><integer>3</integer>
-     <key>file</key><integer>0</integer>
-    </dict>
-    <key>ranges</key>
-    <array>
-      <array>
-       <dict>
-        <key>line</key><integer>24</integer>
-        <key>col</key><integer>3</integer>
-        <key>file</key><integer>0</integer>
-       </dict>
-       <dict>
-        <key>line</key><integer>24</integer>
-        <key>col</key><integer>58</integer>
-        <key>file</key><integer>0</integer>
-       </dict>
-      </array>
-    </array>
-    <key>depth</key><integer>2</integer>
-    <key>extended_message</key>
-    <string>Calling anonymous block</string>
-    <key>message</key>
-    <string>Calling anonymous block</string>
-   </dict>
-   <dict>
-    <key>kind</key><string>event</string>
-    <key>location</key>
-    <dict>
-     <key>line</key><integer>29</integer>
-     <key>col</key><integer>23</integer>
-     <key>file</key><integer>0</integer>
-    </dict>
-    <key>depth</key><integer>3</integer>
-    <key>extended_message</key>
-    <string>Entered call from 'reallyPerformAction'</string>
-    <key>message</key>
-    <string>Entered call from 'reallyPerformAction'</string>
-   </dict>
-   <dict>
-    <key>kind</key><string>control</string>
-    <key>edges</key>
-     <array>
-      <dict>
-       <key>start</key>
-        <array>
-         <dict>
-          <key>line</key><integer>29</integer>
-          <key>col</key><integer>23</integer>
-          <key>file</key><integer>0</integer>
-         </dict>
-         <dict>
-          <key>line</key><integer>29</integer>
-          <key>col</key><integer>23</integer>
-          <key>file</key><integer>0</integer>
-         </dict>
-        </array>
-       <key>end</key>
-        <array>
-         <dict>
-          <key>line</key><integer>31</integer>
-          <key>col</key><integer>5</integer>
-          <key>file</key><integer>0</integer>
-         </dict>
-         <dict>
-          <key>line</key><integer>31</integer>
-          <key>col</key><integer>6</integer>
-          <key>file</key><integer>0</integer>
-         </dict>
-        </array>
-      </dict>
-     </array>
-   </dict>
-   <dict>
-    <key>kind</key><string>control</string>
-    <key>edges</key>
-     <array>
-      <dict>
-       <key>start</key>
-        <array>
-         <dict>
-          <key>line</key><integer>31</integer>
-          <key>col</key><integer>5</integer>
-          <key>file</key><integer>0</integer>
-         </dict>
-         <dict>
-          <key>line</key><integer>31</integer>
-          <key>col</key><integer>6</integer>
-          <key>file</key><integer>0</integer>
-         </dict>
-        </array>
-       <key>end</key>
-        <array>
-         <dict>
-          <key>line</key><integer>31</integer>
-          <key>col</key><integer>9</integer>
-          <key>file</key><integer>0</integer>
-         </dict>
-         <dict>
-          <key>line</key><integer>31</integer>
-          <key>col</key><integer>12</integer>
-          <key>file</key><integer>0</integer>
-         </dict>
-        </array>
-      </dict>
-     </array>
-   </dict>
-   <dict>
-    <key>kind</key><string>event</string>
-    <key>location</key>
-    <dict>
-     <key>line</key><integer>31</integer>
-     <key>col</key><integer>9</integer>
-     <key>file</key><integer>0</integer>
-    </dict>
-    <key>ranges</key>
-    <array>
-      <array>
-       <dict>
-        <key>line</key><integer>31</integer>
-        <key>col</key><integer>9</integer>
-        <key>file</key><integer>0</integer>
-       </dict>
-       <dict>
-        <key>line</key><integer>31</integer>
-        <key>col</key><integer>12</integer>
-        <key>file</key><integer>0</integer>
-       </dict>
-      </array>
-    </array>
-    <key>depth</key><integer>3</integer>
-    <key>extended_message</key>
-    <string>Assuming 'cond' is not equal to 0</string>
-    <key>message</key>
-    <string>Assuming 'cond' is not equal to 0</string>
-   </dict>
-   <dict>
-    <key>kind</key><string>control</string>
-    <key>edges</key>
-     <array>
-      <dict>
-       <key>start</key>
-        <array>
-         <dict>
-          <key>line</key><integer>31</integer>
-          <key>col</key><integer>9</integer>
-          <key>file</key><integer>0</integer>
-         </dict>
-         <dict>
-          <key>line</key><integer>31</integer>
-          <key>col</key><integer>12</integer>
-          <key>file</key><integer>0</integer>
-         </dict>
-        </array>
-       <key>end</key>
-        <array>
-         <dict>
-          <key>line</key><integer>33</integer>
-          <key>col</key><integer>7</integer>
-          <key>file</key><integer>0</integer>
-         </dict>
-         <dict>
-          <key>line</key><integer>33</integer>
-          <key>col</key><integer>14</integer>
-          <key>file</key><integer>0</integer>
-         </dict>
-        </array>
-      </dict>
-     </array>
-   </dict>
-   <dict>
-    <key>kind</key><string>control</string>
-    <key>edges</key>
-     <array>
-      <dict>
-       <key>start</key>
-        <array>
-         <dict>
-          <key>line</key><integer>33</integer>
-          <key>col</key><integer>7</integer>
-          <key>file</key><integer>0</integer>
-         </dict>
-         <dict>
-          <key>line</key><integer>33</integer>
-          <key>col</key><integer>14</integer>
-          <key>file</key><integer>0</integer>
-         </dict>
-        </array>
-       <key>end</key>
-        <array>
-         <dict>
-          <key>line</key><integer>35</integer>
-          <key>col</key><integer>7</integer>
-          <key>file</key><integer>0</integer>
-         </dict>
-         <dict>
-          <key>line</key><integer>35</integer>
-          <key>col</key><integer>14</integer>
-          <key>file</key><integer>0</integer>
-         </dict>
-        </array>
-      </dict>
-     </array>
-   </dict>
-   <dict>
-    <key>kind</key><string>control</string>
-    <key>edges</key>
-     <array>
-      <dict>
-       <key>start</key>
-        <array>
-         <dict>
-          <key>line</key><integer>35</integer>
-          <key>col</key><integer>7</integer>
-          <key>file</key><integer>0</integer>
-         </dict>
-         <dict>
-          <key>line</key><integer>35</integer>
-          <key>col</key><integer>14</integer>
-          <key>file</key><integer>0</integer>
-         </dict>
-        </array>
-       <key>end</key>
-        <array>
-         <dict>
-          <key>line</key><integer>35</integer>
-          <key>col</key><integer>33</integer>
-          <key>file</key><integer>0</integer>
-         </dict>
-         <dict>
-          <key>line</key><integer>35</integer>
-          <key>col</key><integer>38</integer>
-          <key>file</key><integer>0</integer>
-         </dict>
-        </array>
-      </dict>
-     </array>
-   </dict>
-   <dict>
-    <key>kind</key><string>event</string>
-    <key>location</key>
-    <dict>
-     <key>line</key><integer>35</integer>
-     <key>col</key><integer>33</integer>
-     <key>file</key><integer>0</integer>
-    </dict>
-    <key>ranges</key>
-    <array>
-      <array>
-       <dict>
-        <key>line</key><integer>35</integer>
-        <key>col</key><integer>33</integer>
-        <key>file</key><integer>0</integer>
-       </dict>
-       <dict>
-        <key>line</key><integer>35</integer>
-        <key>col</key><integer>50</integer>
-        <key>file</key><integer>0</integer>
-       </dict>
-      </array>
-    </array>
-    <key>depth</key><integer>3</integer>
-    <key>extended_message</key>
-    <string>Calling anonymous block</string>
-    <key>message</key>
-    <string>Calling anonymous block</string>
-   </dict>
-   <dict>
-    <key>kind</key><string>event</string>
-    <key>location</key>
-    <dict>
-     <key>line</key><integer>49</integer>
-     <key>col</key><integer>40</integer>
-     <key>file</key><integer>0</integer>
-    </dict>
-    <key>depth</key><integer>4</integer>
-    <key>extended_message</key>
-    <string>Entered call</string>
-    <key>message</key>
-    <string>Entered call</string>
-   </dict>
-   <dict>
-    <key>kind</key><string>control</string>
-    <key>edges</key>
-     <array>
-      <dict>
-       <key>start</key>
-        <array>
-         <dict>
-          <key>line</key><integer>49</integer>
-          <key>col</key><integer>40</integer>
-          <key>file</key><integer>0</integer>
-         </dict>
-         <dict>
-          <key>line</key><integer>49</integer>
-          <key>col</key><integer>40</integer>
-          <key>file</key><integer>0</integer>
-         </dict>
-        </array>
-       <key>end</key>
-        <array>
-         <dict>
-          <key>line</key><integer>50</integer>
-          <key>col</key><integer>5</integer>
-          <key>file</key><integer>0</integer>
-         </dict>
-         <dict>
-          <key>line</key><integer>50</integer>
-          <key>col</key><integer>17</integer>
-          <key>file</key><integer>0</integer>
-         </dict>
-        </array>
-      </dict>
-     </array>
-   </dict>
-   <dict>
-    <key>kind</key><string>control</string>
-    <key>edges</key>
-     <array>
-      <dict>
-       <key>start</key>
-        <array>
-         <dict>
-          <key>line</key><integer>50</integer>
-          <key>col</key><integer>5</integer>
-          <key>file</key><integer>0</integer>
-         </dict>
-         <dict>
-          <key>line</key><integer>50</integer>
-          <key>col</key><integer>17</integer>
-          <key>file</key><integer>0</integer>
-         </dict>
-        </array>
-       <key>end</key>
-        <array>
-         <dict>
-          <key>line</key><integer>52</integer>
-          <key>col</key><integer>5</integer>
-          <key>file</key><integer>0</integer>
-         </dict>
-         <dict>
-          <key>line</key><integer>52</integer>
-          <key>col</key><integer>10</integer>
-          <key>file</key><integer>0</integer>
-         </dict>
-        </array>
-      </dict>
-     </array>
-   </dict>
-   <dict>
-    <key>kind</key><string>event</string>
-    <key>location</key>
-    <dict>
-     <key>line</key><integer>52</integer>
-     <key>col</key><integer>5</integer>
-     <key>file</key><integer>0</integer>
-    </dict>
-    <key>ranges</key>
-    <array>
-      <array>
-       <dict>
-        <key>line</key><integer>52</integer>
-        <key>col</key><integer>5</integer>
-        <key>file</key><integer>0</integer>
-       </dict>
-       <dict>
-        <key>line</key><integer>52</integer>
-        <key>col</key><integer>21</integer>
-        <key>file</key><integer>0</integer>
-       </dict>
-      </array>
-    </array>
-    <key>depth</key><integer>4</integer>
-    <key>extended_message</key>
-    <string>Object leaked: allocated object is not referenced later in this execution path and has a retain count of +1</string>
-    <key>message</key>
-    <string>Object leaked: allocated object is not referenced later in this execution path and has a retain count of +1</string>
-   </dict>
-  </array>
-  <key>description</key><string>Potential leak of an object</string>
-  <key>category</key><string>Memory (Core Foundation/Objective-C)</string>
-  <key>type</key><string>Leak</string>
- <key>location</key>
- <dict>
-  <key>line</key><integer>52</integer>
-  <key>col</key><integer>5</integer>
-  <key>file</key><integer>0</integer>
- </dict>
- </dict>
-</array>
-
+    </dict>
+    <dict>
+     <key>kind</key><string>event</string>
+     <key>location</key>
+     <dict>
+      <key>line</key><integer>24</integer>
+      <key>col</key><integer>3</integer>
+      <key>file</key><integer>0</integer>
+     </dict>
+     <key>ranges</key>
+     <array>
+       <array>
+        <dict>
+         <key>line</key><integer>24</integer>
+         <key>col</key><integer>3</integer>
+         <key>file</key><integer>0</integer>
+        </dict>
+        <dict>
+         <key>line</key><integer>24</integer>
+         <key>col</key><integer>58</integer>
+         <key>file</key><integer>0</integer>
+        </dict>
+       </array>
+     </array>
+     <key>depth</key><integer>2</integer>
+     <key>extended_message</key>
+     <string>Calling anonymous block</string>
+     <key>message</key>
+     <string>Calling anonymous block</string>
+    </dict>
+    <dict>
+     <key>kind</key><string>event</string>
+     <key>location</key>
+     <dict>
+      <key>line</key><integer>30</integer>
+      <key>col</key><integer>23</integer>
+      <key>file</key><integer>0</integer>
+     </dict>
+     <key>depth</key><integer>3</integer>
+     <key>extended_message</key>
+     <string>Entered call from 'reallyPerformAction'</string>
+     <key>message</key>
+     <string>Entered call from 'reallyPerformAction'</string>
+    </dict>
+    <dict>
+     <key>kind</key><string>control</string>
+     <key>edges</key>
+      <array>
+       <dict>
+        <key>start</key>
+         <array>
+          <dict>
+           <key>line</key><integer>30</integer>
+           <key>col</key><integer>23</integer>
+           <key>file</key><integer>0</integer>
+          </dict>
+          <dict>
+           <key>line</key><integer>30</integer>
+           <key>col</key><integer>23</integer>
+           <key>file</key><integer>0</integer>
+          </dict>
+         </array>
+        <key>end</key>
+         <array>
+          <dict>
+           <key>line</key><integer>32</integer>
+           <key>col</key><integer>5</integer>
+           <key>file</key><integer>0</integer>
+          </dict>
+          <dict>
+           <key>line</key><integer>32</integer>
+           <key>col</key><integer>6</integer>
+           <key>file</key><integer>0</integer>
+          </dict>
+         </array>
+       </dict>
+      </array>
+    </dict>
+    <dict>
+     <key>kind</key><string>control</string>
+     <key>edges</key>
+      <array>
+       <dict>
+        <key>start</key>
+         <array>
+          <dict>
+           <key>line</key><integer>32</integer>
+           <key>col</key><integer>5</integer>
+           <key>file</key><integer>0</integer>
+          </dict>
+          <dict>
+           <key>line</key><integer>32</integer>
+           <key>col</key><integer>6</integer>
+           <key>file</key><integer>0</integer>
+          </dict>
+         </array>
+        <key>end</key>
+         <array>
+          <dict>
+           <key>line</key><integer>32</integer>
+           <key>col</key><integer>9</integer>
+           <key>file</key><integer>0</integer>
+          </dict>
+          <dict>
+           <key>line</key><integer>32</integer>
+           <key>col</key><integer>12</integer>
+           <key>file</key><integer>0</integer>
+          </dict>
+         </array>
+       </dict>
+      </array>
+    </dict>
+    <dict>
+     <key>kind</key><string>event</string>
+     <key>location</key>
+     <dict>
+      <key>line</key><integer>32</integer>
+      <key>col</key><integer>9</integer>
+      <key>file</key><integer>0</integer>
+     </dict>
+     <key>ranges</key>
+     <array>
+       <array>
+        <dict>
+         <key>line</key><integer>32</integer>
+         <key>col</key><integer>9</integer>
+         <key>file</key><integer>0</integer>
+        </dict>
+        <dict>
+         <key>line</key><integer>32</integer>
+         <key>col</key><integer>12</integer>
+         <key>file</key><integer>0</integer>
+        </dict>
+       </array>
+     </array>
+     <key>depth</key><integer>3</integer>
+     <key>extended_message</key>
+     <string>Assuming 'cond' is not equal to 0</string>
+     <key>message</key>
+     <string>Assuming 'cond' is not equal to 0</string>
+    </dict>
+    <dict>
+     <key>kind</key><string>control</string>
+     <key>edges</key>
+      <array>
+       <dict>
+        <key>start</key>
+         <array>
+          <dict>
+           <key>line</key><integer>32</integer>
+           <key>col</key><integer>9</integer>
+           <key>file</key><integer>0</integer>
+          </dict>
+          <dict>
+           <key>line</key><integer>32</integer>
+           <key>col</key><integer>12</integer>
+           <key>file</key><integer>0</integer>
+          </dict>
+         </array>
+        <key>end</key>
+         <array>
+          <dict>
+           <key>line</key><integer>34</integer>
+           <key>col</key><integer>7</integer>
+           <key>file</key><integer>0</integer>
+          </dict>
+          <dict>
+           <key>line</key><integer>34</integer>
+           <key>col</key><integer>14</integer>
+           <key>file</key><integer>0</integer>
+          </dict>
+         </array>
+       </dict>
+      </array>
+    </dict>
+    <dict>
+     <key>kind</key><string>event</string>
+     <key>location</key>
+     <dict>
+      <key>line</key><integer>34</integer>
+      <key>col</key><integer>30</integer>
+      <key>file</key><integer>0</integer>
+     </dict>
+     <key>ranges</key>
+     <array>
+       <array>
+        <dict>
+         <key>line</key><integer>34</integer>
+         <key>col</key><integer>30</integer>
+         <key>file</key><integer>0</integer>
+        </dict>
+        <dict>
+         <key>line</key><integer>34</integer>
+         <key>col</key><integer>50</integer>
+         <key>file</key><integer>0</integer>
+        </dict>
+       </array>
+     </array>
+     <key>depth</key><integer>3</integer>
+     <key>extended_message</key>
+     <string>NSNumber boxed expression produces an object with a +0 retain count</string>
+     <key>message</key>
+     <string>NSNumber boxed expression produces an object with a +0 retain count</string>
+    </dict>
+    <dict>
+     <key>kind</key><string>control</string>
+     <key>edges</key>
+      <array>
+       <dict>
+        <key>start</key>
+         <array>
+          <dict>
+           <key>line</key><integer>34</integer>
+           <key>col</key><integer>7</integer>
+           <key>file</key><integer>0</integer>
+          </dict>
+          <dict>
+           <key>line</key><integer>34</integer>
+           <key>col</key><integer>14</integer>
+           <key>file</key><integer>0</integer>
+          </dict>
+         </array>
+        <key>end</key>
+         <array>
+          <dict>
+           <key>line</key><integer>36</integer>
+           <key>col</key><integer>7</integer>
+           <key>file</key><integer>0</integer>
+          </dict>
+          <dict>
+           <key>line</key><integer>36</integer>
+           <key>col</key><integer>14</integer>
+           <key>file</key><integer>0</integer>
+          </dict>
+         </array>
+       </dict>
+      </array>
+    </dict>
+    <dict>
+     <key>kind</key><string>control</string>
+     <key>edges</key>
+      <array>
+       <dict>
+        <key>start</key>
+         <array>
+          <dict>
+           <key>line</key><integer>36</integer>
+           <key>col</key><integer>7</integer>
+           <key>file</key><integer>0</integer>
+          </dict>
+          <dict>
+           <key>line</key><integer>36</integer>
+           <key>col</key><integer>14</integer>
+           <key>file</key><integer>0</integer>
+          </dict>
+         </array>
+        <key>end</key>
+         <array>
+          <dict>
+           <key>line</key><integer>36</integer>
+           <key>col</key><integer>33</integer>
+           <key>file</key><integer>0</integer>
+          </dict>
+          <dict>
+           <key>line</key><integer>36</integer>
+           <key>col</key><integer>38</integer>
+           <key>file</key><integer>0</integer>
+          </dict>
+         </array>
+       </dict>
+      </array>
+    </dict>
+    <dict>
+     <key>kind</key><string>event</string>
+     <key>location</key>
+     <dict>
+      <key>line</key><integer>36</integer>
+      <key>col</key><integer>33</integer>
+      <key>file</key><integer>0</integer>
+     </dict>
+     <key>ranges</key>
+     <array>
+       <array>
+        <dict>
+         <key>line</key><integer>36</integer>
+         <key>col</key><integer>33</integer>
+         <key>file</key><integer>0</integer>
+        </dict>
+        <dict>
+         <key>line</key><integer>36</integer>
+         <key>col</key><integer>50</integer>
+         <key>file</key><integer>0</integer>
+        </dict>
+       </array>
+     </array>
+     <key>depth</key><integer>3</integer>
+     <key>extended_message</key>
+     <string>Calling anonymous block</string>
+     <key>message</key>
+     <string>Calling anonymous block</string>
+    </dict>
+    <dict>
+     <key>kind</key><string>event</string>
+     <key>location</key>
+     <dict>
+      <key>line</key><integer>50</integer>
+      <key>col</key><integer>40</integer>
+      <key>file</key><integer>0</integer>
+     </dict>
+     <key>depth</key><integer>4</integer>
+     <key>extended_message</key>
+     <string>Entered call</string>
+     <key>message</key>
+     <string>Entered call</string>
+    </dict>
+    <dict>
+     <key>kind</key><string>control</string>
+     <key>edges</key>
+      <array>
+       <dict>
+        <key>start</key>
+         <array>
+          <dict>
+           <key>line</key><integer>50</integer>
+           <key>col</key><integer>40</integer>
+           <key>file</key><integer>0</integer>
+          </dict>
+          <dict>
+           <key>line</key><integer>50</integer>
+           <key>col</key><integer>40</integer>
+           <key>file</key><integer>0</integer>
+          </dict>
+         </array>
+        <key>end</key>
+         <array>
+          <dict>
+           <key>line</key><integer>51</integer>
+           <key>col</key><integer>5</integer>
+           <key>file</key><integer>0</integer>
+          </dict>
+          <dict>
+           <key>line</key><integer>51</integer>
+           <key>col</key><integer>17</integer>
+           <key>file</key><integer>0</integer>
+          </dict>
+         </array>
+       </dict>
+      </array>
+    </dict>
+    <dict>
+     <key>kind</key><string>event</string>
+     <key>location</key>
+     <dict>
+      <key>line</key><integer>51</integer>
+      <key>col</key><integer>21</integer>
+      <key>file</key><integer>0</integer>
+     </dict>
+     <key>ranges</key>
+     <array>
+       <array>
+        <dict>
+         <key>line</key><integer>51</integer>
+         <key>col</key><integer>21</integer>
+         <key>file</key><integer>0</integer>
+        </dict>
+        <dict>
+         <key>line</key><integer>51</integer>
+         <key>col</key><integer>39</integer>
+         <key>file</key><integer>0</integer>
+        </dict>
+       </array>
+       <array>
+        <dict>
+         <key>line</key><integer>51</integer>
+         <key>col</key><integer>22</integer>
+         <key>file</key><integer>0</integer>
+        </dict>
+        <dict>
+         <key>line</key><integer>51</integer>
+         <key>col</key><integer>31</integer>
+         <key>file</key><integer>0</integer>
+        </dict>
+       </array>
+     </array>
+     <key>depth</key><integer>4</integer>
+     <key>extended_message</key>
+     <string>Reference count incremented. The object now has a +1 retain count</string>
+     <key>message</key>
+     <string>Reference count incremented. The object now has a +1 retain count</string>
+    </dict>
+    <dict>
+     <key>kind</key><string>control</string>
+     <key>edges</key>
+      <array>
+       <dict>
+        <key>start</key>
+         <array>
+          <dict>
+           <key>line</key><integer>51</integer>
+           <key>col</key><integer>5</integer>
+           <key>file</key><integer>0</integer>
+          </dict>
+          <dict>
+           <key>line</key><integer>51</integer>
+           <key>col</key><integer>17</integer>
+           <key>file</key><integer>0</integer>
+          </dict>
+         </array>
+        <key>end</key>
+         <array>
+          <dict>
+           <key>line</key><integer>53</integer>
+           <key>col</key><integer>5</integer>
+           <key>file</key><integer>0</integer>
+          </dict>
+          <dict>
+           <key>line</key><integer>53</integer>
+           <key>col</key><integer>10</integer>
+           <key>file</key><integer>0</integer>
+          </dict>
+         </array>
+       </dict>
+      </array>
+    </dict>
+    <dict>
+     <key>kind</key><string>event</string>
+     <key>location</key>
+     <dict>
+      <key>line</key><integer>36</integer>
+      <key>col</key><integer>33</integer>
+      <key>file</key><integer>0</integer>
+     </dict>
+     <key>ranges</key>
+     <array>
+       <array>
+        <dict>
+         <key>line</key><integer>36</integer>
+         <key>col</key><integer>33</integer>
+         <key>file</key><integer>0</integer>
+        </dict>
+        <dict>
+         <key>line</key><integer>36</integer>
+         <key>col</key><integer>50</integer>
+         <key>file</key><integer>0</integer>
+        </dict>
+       </array>
+     </array>
+     <key>depth</key><integer>3</integer>
+     <key>extended_message</key>
+     <string>Returning to caller</string>
+     <key>message</key>
+     <string>Returning to caller</string>
+    </dict>
+    <dict>
+     <key>kind</key><string>control</string>
+     <key>edges</key>
+      <array>
+       <dict>
+        <key>start</key>
+         <array>
+          <dict>
+           <key>line</key><integer>36</integer>
+           <key>col</key><integer>33</integer>
+           <key>file</key><integer>0</integer>
+          </dict>
+          <dict>
+           <key>line</key><integer>36</integer>
+           <key>col</key><integer>38</integer>
+           <key>file</key><integer>0</integer>
+          </dict>
+         </array>
+        <key>end</key>
+         <array>
+          <dict>
+           <key>line</key><integer>36</integer>
+           <key>col</key><integer>7</integer>
+           <key>file</key><integer>0</integer>
+          </dict>
+          <dict>
+           <key>line</key><integer>36</integer>
+           <key>col</key><integer>14</integer>
+           <key>file</key><integer>0</integer>
+          </dict>
+         </array>
+       </dict>
+      </array>
+    </dict>
+    <dict>
+     <key>kind</key><string>control</string>
+     <key>edges</key>
+      <array>
+       <dict>
+        <key>start</key>
+         <array>
+          <dict>
+           <key>line</key><integer>36</integer>
+           <key>col</key><integer>7</integer>
+           <key>file</key><integer>0</integer>
+          </dict>
+          <dict>
+           <key>line</key><integer>36</integer>
+           <key>col</key><integer>14</integer>
+           <key>file</key><integer>0</integer>
+          </dict>
+         </array>
+        <key>end</key>
+         <array>
+          <dict>
+           <key>line</key><integer>38</integer>
+           <key>col</key><integer>7</integer>
+           <key>file</key><integer>0</integer>
+          </dict>
+          <dict>
+           <key>line</key><integer>38</integer>
+           <key>col</key><integer>8</integer>
+           <key>file</key><integer>0</integer>
+          </dict>
+         </array>
+       </dict>
+      </array>
+    </dict>
+    <dict>
+     <key>kind</key><string>control</string>
+     <key>edges</key>
+      <array>
+       <dict>
+        <key>start</key>
+         <array>
+          <dict>
+           <key>line</key><integer>38</integer>
+           <key>col</key><integer>7</integer>
+           <key>file</key><integer>0</integer>
+          </dict>
+          <dict>
+           <key>line</key><integer>38</integer>
+           <key>col</key><integer>8</integer>
+           <key>file</key><integer>0</integer>
+          </dict>
+         </array>
+        <key>end</key>
+         <array>
+          <dict>
+           <key>line</key><integer>41</integer>
+           <key>col</key><integer>7</integer>
+           <key>file</key><integer>0</integer>
+          </dict>
+          <dict>
+           <key>line</key><integer>41</integer>
+           <key>col</key><integer>18</integer>
+           <key>file</key><integer>0</integer>
+          </dict>
+         </array>
+       </dict>
+      </array>
+    </dict>
+    <dict>
+     <key>kind</key><string>event</string>
+     <key>location</key>
+     <dict>
+      <key>line</key><integer>24</integer>
+      <key>col</key><integer>3</integer>
+      <key>file</key><integer>0</integer>
+     </dict>
+     <key>ranges</key>
+     <array>
+       <array>
+        <dict>
+         <key>line</key><integer>24</integer>
+         <key>col</key><integer>3</integer>
+         <key>file</key><integer>0</integer>
+        </dict>
+        <dict>
+         <key>line</key><integer>24</integer>
+         <key>col</key><integer>58</integer>
+         <key>file</key><integer>0</integer>
+        </dict>
+       </array>
+     </array>
+     <key>depth</key><integer>2</integer>
+     <key>extended_message</key>
+     <string>Returning to caller</string>
+     <key>message</key>
+     <string>Returning to caller</string>
+    </dict>
+    <dict>
+     <key>kind</key><string>control</string>
+     <key>edges</key>
+      <array>
+       <dict>
+        <key>start</key>
+         <array>
+          <dict>
+           <key>line</key><integer>24</integer>
+           <key>col</key><integer>3</integer>
+           <key>file</key><integer>0</integer>
+          </dict>
+          <dict>
+           <key>line</key><integer>24</integer>
+           <key>col</key><integer>16</integer>
+           <key>file</key><integer>0</integer>
+          </dict>
+         </array>
+        <key>end</key>
+         <array>
+          <dict>
+           <key>line</key><integer>25</integer>
+           <key>col</key><integer>3</integer>
+           <key>file</key><integer>0</integer>
+          </dict>
+          <dict>
+           <key>line</key><integer>25</integer>
+           <key>col</key><integer>16</integer>
+           <key>file</key><integer>0</integer>
+          </dict>
+         </array>
+       </dict>
+      </array>
+    </dict>
+    <dict>
+     <key>kind</key><string>event</string>
+     <key>location</key>
+     <dict>
+      <key>line</key><integer>25</integer>
+      <key>col</key><integer>3</integer>
+      <key>file</key><integer>0</integer>
+     </dict>
+     <key>ranges</key>
+     <array>
+       <array>
+        <dict>
+         <key>line</key><integer>25</integer>
+         <key>col</key><integer>3</integer>
+         <key>file</key><integer>0</integer>
+        </dict>
+        <dict>
+         <key>line</key><integer>25</integer>
+         <key>col</key><integer>58</integer>
+         <key>file</key><integer>0</integer>
+        </dict>
+       </array>
+     </array>
+     <key>depth</key><integer>2</integer>
+     <key>extended_message</key>
+     <string>Calling anonymous block</string>
+     <key>message</key>
+     <string>Calling anonymous block</string>
+    </dict>
+    <dict>
+     <key>kind</key><string>event</string>
+     <key>location</key>
+     <dict>
+      <key>line</key><integer>30</integer>
+      <key>col</key><integer>23</integer>
+      <key>file</key><integer>0</integer>
+     </dict>
+     <key>depth</key><integer>3</integer>
+     <key>extended_message</key>
+     <string>Entered call from 'reallyPerformAction'</string>
+     <key>message</key>
+     <string>Entered call from 'reallyPerformAction'</string>
+    </dict>
+    <dict>
+     <key>kind</key><string>control</string>
+     <key>edges</key>
+      <array>
+       <dict>
+        <key>start</key>
+         <array>
+          <dict>
+           <key>line</key><integer>30</integer>
+           <key>col</key><integer>23</integer>
+           <key>file</key><integer>0</integer>
+          </dict>
+          <dict>
+           <key>line</key><integer>30</integer>
+           <key>col</key><integer>23</integer>
+           <key>file</key><integer>0</integer>
+          </dict>
+         </array>
+        <key>end</key>
+         <array>
+          <dict>
+           <key>line</key><integer>32</integer>
+           <key>col</key><integer>5</integer>
+           <key>file</key><integer>0</integer>
+          </dict>
+          <dict>
+           <key>line</key><integer>32</integer>
+           <key>col</key><integer>6</integer>
+           <key>file</key><integer>0</integer>
+          </dict>
+         </array>
+       </dict>
+      </array>
+    </dict>
+    <dict>
+     <key>kind</key><string>control</string>
+     <key>edges</key>
+      <array>
+       <dict>
+        <key>start</key>
+         <array>
+          <dict>
+           <key>line</key><integer>32</integer>
+           <key>col</key><integer>5</integer>
+           <key>file</key><integer>0</integer>
+          </dict>
+          <dict>
+           <key>line</key><integer>32</integer>
+           <key>col</key><integer>6</integer>
+           <key>file</key><integer>0</integer>
+          </dict>
+         </array>
+        <key>end</key>
+         <array>
+          <dict>
+           <key>line</key><integer>32</integer>
+           <key>col</key><integer>9</integer>
+           <key>file</key><integer>0</integer>
+          </dict>
+          <dict>
+           <key>line</key><integer>32</integer>
+           <key>col</key><integer>12</integer>
+           <key>file</key><integer>0</integer>
+          </dict>
+         </array>
+       </dict>
+      </array>
+    </dict>
+    <dict>
+     <key>kind</key><string>event</string>
+     <key>location</key>
+     <dict>
+      <key>line</key><integer>32</integer>
+      <key>col</key><integer>9</integer>
+      <key>file</key><integer>0</integer>
+     </dict>
+     <key>ranges</key>
+     <array>
+       <array>
+        <dict>
+         <key>line</key><integer>32</integer>
+         <key>col</key><integer>9</integer>
+         <key>file</key><integer>0</integer>
+        </dict>
+        <dict>
+         <key>line</key><integer>32</integer>
+         <key>col</key><integer>12</integer>
+         <key>file</key><integer>0</integer>
+        </dict>
+       </array>
+     </array>
+     <key>depth</key><integer>3</integer>
+     <key>extended_message</key>
+     <string>Assuming 'cond' is not equal to 0</string>
+     <key>message</key>
+     <string>Assuming 'cond' is not equal to 0</string>
+    </dict>
+    <dict>
+     <key>kind</key><string>control</string>
+     <key>edges</key>
+      <array>
+       <dict>
+        <key>start</key>
+         <array>
+          <dict>
+           <key>line</key><integer>32</integer>
+           <key>col</key><integer>9</integer>
+           <key>file</key><integer>0</integer>
+          </dict>
+          <dict>
+           <key>line</key><integer>32</integer>
+           <key>col</key><integer>12</integer>
+           <key>file</key><integer>0</integer>
+          </dict>
+         </array>
+        <key>end</key>
+         <array>
+          <dict>
+           <key>line</key><integer>34</integer>
+           <key>col</key><integer>7</integer>
+           <key>file</key><integer>0</integer>
+          </dict>
+          <dict>
+           <key>line</key><integer>34</integer>
+           <key>col</key><integer>14</integer>
+           <key>file</key><integer>0</integer>
+          </dict>
+         </array>
+       </dict>
+      </array>
+    </dict>
+    <dict>
+     <key>kind</key><string>control</string>
+     <key>edges</key>
+      <array>
+       <dict>
+        <key>start</key>
+         <array>
+          <dict>
+           <key>line</key><integer>34</integer>
+           <key>col</key><integer>7</integer>
+           <key>file</key><integer>0</integer>
+          </dict>
+          <dict>
+           <key>line</key><integer>34</integer>
+           <key>col</key><integer>14</integer>
+           <key>file</key><integer>0</integer>
+          </dict>
+         </array>
+        <key>end</key>
+         <array>
+          <dict>
+           <key>line</key><integer>36</integer>
+           <key>col</key><integer>7</integer>
+           <key>file</key><integer>0</integer>
+          </dict>
+          <dict>
+           <key>line</key><integer>36</integer>
+           <key>col</key><integer>14</integer>
+           <key>file</key><integer>0</integer>
+          </dict>
+         </array>
+       </dict>
+      </array>
+    </dict>
+    <dict>
+     <key>kind</key><string>control</string>
+     <key>edges</key>
+      <array>
+       <dict>
+        <key>start</key>
+         <array>
+          <dict>
+           <key>line</key><integer>36</integer>
+           <key>col</key><integer>7</integer>
+           <key>file</key><integer>0</integer>
+          </dict>
+          <dict>
+           <key>line</key><integer>36</integer>
+           <key>col</key><integer>14</integer>
+           <key>file</key><integer>0</integer>
+          </dict>
+         </array>
+        <key>end</key>
+         <array>
+          <dict>
+           <key>line</key><integer>36</integer>
+           <key>col</key><integer>33</integer>
+           <key>file</key><integer>0</integer>
+          </dict>
+          <dict>
+           <key>line</key><integer>36</integer>
+           <key>col</key><integer>38</integer>
+           <key>file</key><integer>0</integer>
+          </dict>
+         </array>
+       </dict>
+      </array>
+    </dict>
+    <dict>
+     <key>kind</key><string>event</string>
+     <key>location</key>
+     <dict>
+      <key>line</key><integer>36</integer>
+      <key>col</key><integer>33</integer>
+      <key>file</key><integer>0</integer>
+     </dict>
+     <key>ranges</key>
+     <array>
+       <array>
+        <dict>
+         <key>line</key><integer>36</integer>
+         <key>col</key><integer>33</integer>
+         <key>file</key><integer>0</integer>
+        </dict>
+        <dict>
+         <key>line</key><integer>36</integer>
+         <key>col</key><integer>50</integer>
+         <key>file</key><integer>0</integer>
+        </dict>
+       </array>
+     </array>
+     <key>depth</key><integer>3</integer>
+     <key>extended_message</key>
+     <string>Calling anonymous block</string>
+     <key>message</key>
+     <string>Calling anonymous block</string>
+    </dict>
+    <dict>
+     <key>kind</key><string>event</string>
+     <key>location</key>
+     <dict>
+      <key>line</key><integer>50</integer>
+      <key>col</key><integer>40</integer>
+      <key>file</key><integer>0</integer>
+     </dict>
+     <key>depth</key><integer>4</integer>
+     <key>extended_message</key>
+     <string>Entered call</string>
+     <key>message</key>
+     <string>Entered call</string>
+    </dict>
+    <dict>
+     <key>kind</key><string>control</string>
+     <key>edges</key>
+      <array>
+       <dict>
+        <key>start</key>
+         <array>
+          <dict>
+           <key>line</key><integer>50</integer>
+           <key>col</key><integer>40</integer>
+           <key>file</key><integer>0</integer>
+          </dict>
+          <dict>
+           <key>line</key><integer>50</integer>
+           <key>col</key><integer>40</integer>
+           <key>file</key><integer>0</integer>
+          </dict>
+         </array>
+        <key>end</key>
+         <array>
+          <dict>
+           <key>line</key><integer>51</integer>
+           <key>col</key><integer>5</integer>
+           <key>file</key><integer>0</integer>
+          </dict>
+          <dict>
+           <key>line</key><integer>51</integer>
+           <key>col</key><integer>17</integer>
+           <key>file</key><integer>0</integer>
+          </dict>
+         </array>
+       </dict>
+      </array>
+    </dict>
+    <dict>
+     <key>kind</key><string>control</string>
+     <key>edges</key>
+      <array>
+       <dict>
+        <key>start</key>
+         <array>
+          <dict>
+           <key>line</key><integer>51</integer>
+           <key>col</key><integer>5</integer>
+           <key>file</key><integer>0</integer>
+          </dict>
+          <dict>
+           <key>line</key><integer>51</integer>
+           <key>col</key><integer>17</integer>
+           <key>file</key><integer>0</integer>
+          </dict>
+         </array>
+        <key>end</key>
+         <array>
+          <dict>
+           <key>line</key><integer>53</integer>
+           <key>col</key><integer>5</integer>
+           <key>file</key><integer>0</integer>
+          </dict>
+          <dict>
+           <key>line</key><integer>53</integer>
+           <key>col</key><integer>10</integer>
+           <key>file</key><integer>0</integer>
+          </dict>
+         </array>
+       </dict>
+      </array>
+    </dict>
+    <dict>
+     <key>kind</key><string>event</string>
+     <key>location</key>
+     <dict>
+      <key>line</key><integer>53</integer>
+      <key>col</key><integer>5</integer>
+      <key>file</key><integer>0</integer>
+     </dict>
+     <key>ranges</key>
+     <array>
+       <array>
+        <dict>
+         <key>line</key><integer>53</integer>
+         <key>col</key><integer>5</integer>
+         <key>file</key><integer>0</integer>
+        </dict>
+        <dict>
+         <key>line</key><integer>53</integer>
+         <key>col</key><integer>21</integer>
+         <key>file</key><integer>0</integer>
+        </dict>
+       </array>
+     </array>
+     <key>depth</key><integer>4</integer>
+     <key>extended_message</key>
+     <string>Object leaked: allocated object of type 'NSNumber *' is not referenced later in this execution path and has a retain count of +1</string>
+     <key>message</key>
+     <string>Object leaked: allocated object of type 'NSNumber *' is not referenced later in this execution path and has a retain count of +1</string>
+    </dict>
+   </array>
+   <key>description</key><string>Potential leak of an object of type 'NSNumber *'</string>
+   <key>category</key><string>Memory (Core Foundation/Objective-C)</string>
+   <key>type</key><string>Leak</string>
+   <key>check_name</key><string>osx.cocoa.RetainCount</string>
+   <!-- This hash is experimental and going to change! -->
+   <key>issue_hash_content_of_line_in_context</key><string>500e2bbda41c8086771ad98b6bcfdc50</string>
+  <key>location</key>
+  <dict>
+   <key>line</key><integer>53</integer>
+   <key>col</key><integer>5</integer>
+   <key>file</key><integer>0</integer>
+  </dict>
+  <key>ExecutedLines</key>
+  <dict>
+   <key>0</key>
+   <array>
+    <integer>23</integer>
+    <integer>24</integer>
+    <integer>25</integer>
+    <integer>28</integer>
+    <integer>29</integer>
+    <integer>30</integer>
+    <integer>32</integer>
+    <integer>34</integer>
+    <integer>36</integer>
+    <integer>38</integer>
+    <integer>41</integer>
+    <integer>48</integer>
+    <integer>49</integer>
+    <integer>50</integer>
+    <integer>51</integer>
+    <integer>53</integer>
+   </array>
+  </dict>
+  </dict>
+ </array>
+ <key>files</key>
+ <array>
+  <string>/Volumes/Transcend/code/monorepo/llvm-project/clang/test/Analysis/objc-radar17039661.m</string>
+ </array>
 </dict>
-</plist>
+</plist>
\ No newline at end of file

Modified: cfe/trunk/test/Analysis/Inputs/expected-plists/plist-output-alternate.m.plist
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Analysis/Inputs/expected-plists/plist-output-alternate.m.plist?rev=350867&r1=350866&r2=350867&view=diff
==============================================================================
--- cfe/trunk/test/Analysis/Inputs/expected-plists/plist-output-alternate.m.plist (original)
+++ cfe/trunk/test/Analysis/Inputs/expected-plists/plist-output-alternate.m.plist Thu Jan 10 10:15:57 2019
@@ -1299,9 +1299,9 @@
      </array>
      <key>depth</key><integer>0</integer>
      <key>extended_message</key>
-     <string>Call to function 'CFNumberCreate' returns a Core Foundation object of type CFNumberRef with a +1 retain count</string>
+     <string>Call to function 'CFNumberCreate' returns a Core Foundation object of type 'CFNumberRef' with a +1 retain count</string>
      <key>message</key>
-     <string>Call to function 'CFNumberCreate' returns a Core Foundation object of type CFNumberRef with a +1 retain count</string>
+     <string>Call to function 'CFNumberCreate' returns a Core Foundation object of type 'CFNumberRef' with a +1 retain count</string>
     </dict>
     <dict>
      <key>kind</key><string>control</string>

Modified: cfe/trunk/test/Analysis/Inputs/expected-plists/retain-release-path-notes.m.plist
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Analysis/Inputs/expected-plists/retain-release-path-notes.m.plist?rev=350867&r1=350866&r2=350867&view=diff
==============================================================================
--- cfe/trunk/test/Analysis/Inputs/expected-plists/retain-release-path-notes.m.plist (original)
+++ cfe/trunk/test/Analysis/Inputs/expected-plists/retain-release-path-notes.m.plist Thu Jan 10 10:15:57 2019
@@ -155,9 +155,9 @@
      </array>
      <key>depth</key><integer>0</integer>
      <key>extended_message</key>
-     <string>Call to function 'CFCreateSomething' returns a Core Foundation object of type CFTypeRef with a +1 retain count</string>
+     <string>Call to function 'CFCreateSomething' returns a Core Foundation object of type 'CFTypeRef' with a +1 retain count</string>
      <key>message</key>
-     <string>Call to function 'CFCreateSomething' returns a Core Foundation object of type CFTypeRef with a +1 retain count</string>
+     <string>Call to function 'CFCreateSomething' returns a Core Foundation object of type 'CFTypeRef' with a +1 retain count</string>
     </dict>
     <dict>
      <key>kind</key><string>control</string>
@@ -822,9 +822,9 @@
      </array>
      <key>depth</key><integer>0</integer>
      <key>extended_message</key>
-     <string>Call to function 'CFGetSomething' returns a Core Foundation object of type CFTypeRef with a +0 retain count</string>
+     <string>Call to function 'CFGetSomething' returns a Core Foundation object of type 'CFTypeRef' with a +0 retain count</string>
      <key>message</key>
-     <string>Call to function 'CFGetSomething' returns a Core Foundation object of type CFTypeRef with a +0 retain count</string>
+     <string>Call to function 'CFGetSomething' returns a Core Foundation object of type 'CFTypeRef' with a +0 retain count</string>
     </dict>
     <dict>
      <key>kind</key><string>control</string>
@@ -1883,9 +1883,9 @@
      </array>
      <key>depth</key><integer>0</integer>
      <key>extended_message</key>
-     <string>Call to function 'CFCreateSomething' returns a Core Foundation object of type CFTypeRef with a +1 retain count</string>
+     <string>Call to function 'CFCreateSomething' returns a Core Foundation object of type 'CFTypeRef' with a +1 retain count</string>
      <key>message</key>
-     <string>Call to function 'CFCreateSomething' returns a Core Foundation object of type CFTypeRef with a +1 retain count</string>
+     <string>Call to function 'CFCreateSomething' returns a Core Foundation object of type 'CFTypeRef' with a +1 retain count</string>
     </dict>
     <dict>
      <key>kind</key><string>control</string>
@@ -2006,9 +2006,9 @@
      </array>
      <key>depth</key><integer>0</integer>
      <key>extended_message</key>
-     <string>Call to function 'CFGetSomething' returns a Core Foundation object of type CFTypeRef with a +0 retain count</string>
+     <string>Call to function 'CFGetSomething' returns a Core Foundation object of type 'CFTypeRef' with a +0 retain count</string>
      <key>message</key>
-     <string>Call to function 'CFGetSomething' returns a Core Foundation object of type CFTypeRef with a +0 retain count</string>
+     <string>Call to function 'CFGetSomething' returns a Core Foundation object of type 'CFTypeRef' with a +0 retain count</string>
     </dict>
     <dict>
      <key>kind</key><string>control</string>
@@ -2127,9 +2127,9 @@
      </array>
      <key>depth</key><integer>0</integer>
      <key>extended_message</key>
-     <string>Call to function 'CFCreateSomething' returns a Core Foundation object of type CFTypeRef with a +1 retain count</string>
+     <string>Call to function 'CFCreateSomething' returns a Core Foundation object of type 'CFTypeRef' with a +1 retain count</string>
      <key>message</key>
-     <string>Call to function 'CFCreateSomething' returns a Core Foundation object of type CFTypeRef with a +1 retain count</string>
+     <string>Call to function 'CFCreateSomething' returns a Core Foundation object of type 'CFTypeRef' with a +1 retain count</string>
     </dict>
     <dict>
      <key>kind</key><string>control</string>
@@ -3834,12 +3834,12 @@
      </array>
      <key>depth</key><integer>0</integer>
      <key>extended_message</key>
-     <string>Object leaked: allocated object of type MyObj * is not referenced later in this execution path and has a retain count of +1</string>
+     <string>Object leaked: allocated object of type 'MyObj *' is not referenced later in this execution path and has a retain count of +1</string>
      <key>message</key>
-     <string>Object leaked: allocated object of type MyObj * is not referenced later in this execution path and has a retain count of +1</string>
+     <string>Object leaked: allocated object of type 'MyObj *' is not referenced later in this execution path and has a retain count of +1</string>
     </dict>
    </array>
-   <key>description</key><string>Potential leak of an object of type MyObj *</string>
+   <key>description</key><string>Potential leak of an object of type 'MyObj *'</string>
    <key>category</key><string>Memory (Core Foundation/Objective-C)</string>
    <key>type</key><string>Leak</string>
    <key>check_name</key><string>osx.cocoa.RetainCount</string>
@@ -4298,9 +4298,9 @@
      </array>
      <key>depth</key><integer>0</integer>
      <key>extended_message</key>
-     <string>Call to function 'CFCreateSomething' returns a Core Foundation object of type CFTypeRef with a +1 retain count</string>
+     <string>Call to function 'CFCreateSomething' returns a Core Foundation object of type 'CFTypeRef' with a +1 retain count</string>
      <key>message</key>
-     <string>Call to function 'CFCreateSomething' returns a Core Foundation object of type CFTypeRef with a +1 retain count</string>
+     <string>Call to function 'CFCreateSomething' returns a Core Foundation object of type 'CFTypeRef' with a +1 retain count</string>
     </dict>
     <dict>
      <key>kind</key><string>control</string>
@@ -4571,9 +4571,9 @@
      </array>
      <key>depth</key><integer>0</integer>
      <key>extended_message</key>
-     <string>Call to function 'CFGetSomething' returns a Core Foundation object of type CFTypeRef with a +0 retain count</string>
+     <string>Call to function 'CFGetSomething' returns a Core Foundation object of type 'CFTypeRef' with a +0 retain count</string>
      <key>message</key>
-     <string>Call to function 'CFGetSomething' returns a Core Foundation object of type CFTypeRef with a +0 retain count</string>
+     <string>Call to function 'CFGetSomething' returns a Core Foundation object of type 'CFTypeRef' with a +0 retain count</string>
     </dict>
     <dict>
      <key>kind</key><string>control</string>
@@ -4768,9 +4768,9 @@
      </array>
      <key>depth</key><integer>0</integer>
      <key>extended_message</key>
-     <string>Call to function 'CFGetSomething' returns a Core Foundation object of type CFTypeRef with a +0 retain count</string>
+     <string>Call to function 'CFGetSomething' returns a Core Foundation object of type 'CFTypeRef' with a +0 retain count</string>
      <key>message</key>
-     <string>Call to function 'CFGetSomething' returns a Core Foundation object of type CFTypeRef with a +0 retain count</string>
+     <string>Call to function 'CFGetSomething' returns a Core Foundation object of type 'CFTypeRef' with a +0 retain count</string>
     </dict>
     <dict>
      <key>kind</key><string>control</string>

Modified: cfe/trunk/test/Analysis/objc-radar17039661.m
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Analysis/objc-radar17039661.m?rev=350867&r1=350866&r2=350867&view=diff
==============================================================================
--- cfe/trunk/test/Analysis/objc-radar17039661.m (original)
+++ cfe/trunk/test/Analysis/objc-radar17039661.m Thu Jan 10 10:15:57 2019
@@ -1,6 +1,7 @@
 // RUN: %clang_analyze_cc1 -analyzer-checker=core,osx.cocoa.RetainCount -fblocks -verify %s
 // RUN: %clang_analyze_cc1 -analyzer-checker=core,osx.cocoa.RetainCount -fblocks -analyzer-output=plist-multi-file %s -o %t
-// RUN: FileCheck --input-file=%t %s
+// RUN: cat %t | %diff_plist %S/Inputs/expected-plists/objc-radar17039661.m.plist -
+
 @class NSString;
 typedef long NSInteger;
 typedef unsigned char BOOL;
@@ -58,1276 +59,3 @@ void runTest() {
     return;
   }
 }
-
-// CHECK: <key>diagnostics</key>
-// CHECK: <array>
-// CHECK:  <dict>
-// CHECK:   <key>path</key>
-// CHECK:   <array>
-// 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>48</integer>
-// CHECK:           <key>col</key><integer>3</integer>
-// CHECK:           <key>file</key><integer>0</integer>
-// CHECK:          </dict>
-// CHECK:          <dict>
-// CHECK:           <key>line</key><integer>48</integer>
-// CHECK:           <key>col</key><integer>15</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>49</integer>
-// CHECK:           <key>col</key><integer>3</integer>
-// CHECK:           <key>file</key><integer>0</integer>
-// CHECK:          </dict>
-// CHECK:          <dict>
-// CHECK:           <key>line</key><integer>49</integer>
-// CHECK:           <key>col</key><integer>6</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>49</integer>
-// CHECK:           <key>col</key><integer>3</integer>
-// CHECK:           <key>file</key><integer>0</integer>
-// CHECK:          </dict>
-// CHECK:          <dict>
-// CHECK:           <key>line</key><integer>49</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>49</integer>
-// CHECK:           <key>col</key><integer>26</integer>
-// CHECK:           <key>file</key><integer>0</integer>
-// CHECK:          </dict>
-// CHECK:          <dict>
-// CHECK:           <key>line</key><integer>49</integer>
-// CHECK:           <key>col</key><integer>38</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>event</string>
-// CHECK:     <key>location</key>
-// CHECK:     <dict>
-// CHECK:      <key>line</key><integer>49</integer>
-// CHECK:      <key>col</key><integer>26</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>49</integer>
-// CHECK:         <key>col</key><integer>26</integer>
-// CHECK:         <key>file</key><integer>0</integer>
-// CHECK:        </dict>
-// CHECK:        <dict>
-// CHECK:         <key>line</key><integer>53</integer>
-// CHECK:         <key>col</key><integer>4</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>Calling 'performAction'</string>
-// CHECK:     <key>message</key>
-// CHECK:     <string>Calling 'performAction'</string>
-// 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>1</integer>
-// CHECK:      <key>file</key><integer>0</integer>
-// CHECK:     </dict>
-// CHECK:     <key>depth</key><integer>1</integer>
-// CHECK:     <key>extended_message</key>
-// CHECK:     <string>Entered call from 'runTest'</string>
-// CHECK:     <key>message</key>
-// CHECK:     <string>Entered call from 'runTest'</string>
-// 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>1</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:        <key>end</key>
-// CHECK:         <array>
-// CHECK:          <dict>
-// CHECK:           <key>line</key><integer>28</integer>
-// CHECK:           <key>col</key><integer>3</integer>
-// CHECK:           <key>file</key><integer>0</integer>
-// CHECK:          </dict>
-// CHECK:          <dict>
-// CHECK:           <key>line</key><integer>28</integer>
-// CHECK:           <key>col</key><integer>15</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>28</integer>
-// CHECK:           <key>col</key><integer>3</integer>
-// CHECK:           <key>file</key><integer>0</integer>
-// CHECK:          </dict>
-// CHECK:          <dict>
-// CHECK:           <key>line</key><integer>28</integer>
-// CHECK:           <key>col</key><integer>15</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>3</integer>
-// CHECK:           <key>file</key><integer>0</integer>
-// CHECK:          </dict>
-// CHECK:          <dict>
-// CHECK:           <key>line</key><integer>29</integer>
-// CHECK:           <key>col</key><integer>21</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>event</string>
-// CHECK:     <key>location</key>
-// CHECK:     <dict>
-// CHECK:      <key>line</key><integer>29</integer>
-// CHECK:      <key>col</key><integer>3</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>3</integer>
-// CHECK:         <key>file</key><integer>0</integer>
-// CHECK:        </dict>
-// CHECK:        <dict>
-// CHECK:         <key>line</key><integer>43</integer>
-// CHECK:         <key>col</key><integer>4</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>Calling 'reallyPerformAction'</string>
-// CHECK:     <key>message</key>
-// CHECK:     <string>Calling 'reallyPerformAction'</string>
-// CHECK:    </dict>
-// CHECK:    <dict>
-// CHECK:     <key>kind</key><string>event</string>
-// CHECK:     <key>location</key>
-// CHECK:     <dict>
-// CHECK:      <key>line</key><integer>22</integer>
-// CHECK:      <key>col</key><integer>1</integer>
-// CHECK:      <key>file</key><integer>0</integer>
-// CHECK:     </dict>
-// CHECK:     <key>depth</key><integer>2</integer>
-// CHECK:     <key>extended_message</key>
-// CHECK:     <string>Entered call from 'performAction'</string>
-// CHECK:     <key>message</key>
-// CHECK:     <string>Entered call from 'performAction'</string>
-// 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>22</integer>
-// CHECK:           <key>col</key><integer>1</integer>
-// CHECK:           <key>file</key><integer>0</integer>
-// CHECK:          </dict>
-// CHECK:          <dict>
-// CHECK:           <key>line</key><integer>22</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>23</integer>
-// CHECK:           <key>col</key><integer>3</integer>
-// CHECK:           <key>file</key><integer>0</integer>
-// CHECK:          </dict>
-// CHECK:          <dict>
-// CHECK:           <key>line</key><integer>23</integer>
-// CHECK:           <key>col</key><integer>16</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>event</string>
-// CHECK:     <key>location</key>
-// CHECK:     <dict>
-// CHECK:      <key>line</key><integer>23</integer>
-// CHECK:      <key>col</key><integer>3</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>23</integer>
-// CHECK:         <key>col</key><integer>3</integer>
-// CHECK:         <key>file</key><integer>0</integer>
-// CHECK:        </dict>
-// CHECK:        <dict>
-// CHECK:         <key>line</key><integer>23</integer>
-// CHECK:         <key>col</key><integer>58</integer>
-// CHECK:         <key>file</key><integer>0</integer>
-// CHECK:        </dict>
-// CHECK:       </array>
-// CHECK:     </array>
-// CHECK:     <key>depth</key><integer>2</integer>
-// CHECK:     <key>extended_message</key>
-// CHECK:     <string>Calling anonymous block</string>
-// CHECK:     <key>message</key>
-// CHECK:     <string>Calling anonymous block</string>
-// CHECK:    </dict>
-// CHECK:    <dict>
-// 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>23</integer>
-// CHECK:      <key>file</key><integer>0</integer>
-// CHECK:     </dict>
-// CHECK:     <key>depth</key><integer>3</integer>
-// CHECK:     <key>extended_message</key>
-// CHECK:     <string>Entered call from 'reallyPerformAction'</string>
-// CHECK:     <key>message</key>
-// CHECK:     <string>Entered call from 'reallyPerformAction'</string>
-// 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>29</integer>
-// CHECK:           <key>col</key><integer>23</integer>
-// CHECK:           <key>file</key><integer>0</integer>
-// CHECK:          </dict>
-// CHECK:          <dict>
-// CHECK:           <key>line</key><integer>29</integer>
-// CHECK:           <key>col</key><integer>23</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>31</integer>
-// CHECK:           <key>col</key><integer>5</integer>
-// CHECK:           <key>file</key><integer>0</integer>
-// CHECK:          </dict>
-// CHECK:          <dict>
-// CHECK:           <key>line</key><integer>31</integer>
-// CHECK:           <key>col</key><integer>6</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>31</integer>
-// CHECK:           <key>col</key><integer>5</integer>
-// CHECK:           <key>file</key><integer>0</integer>
-// CHECK:          </dict>
-// CHECK:          <dict>
-// CHECK:           <key>line</key><integer>31</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>31</integer>
-// CHECK:           <key>col</key><integer>9</integer>
-// CHECK:           <key>file</key><integer>0</integer>
-// CHECK:          </dict>
-// CHECK:          <dict>
-// CHECK:           <key>line</key><integer>31</integer>
-// CHECK:           <key>col</key><integer>12</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>event</string>
-// CHECK:     <key>location</key>
-// CHECK:     <dict>
-// CHECK:      <key>line</key><integer>31</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>31</integer>
-// CHECK:         <key>col</key><integer>9</integer>
-// CHECK:         <key>file</key><integer>0</integer>
-// CHECK:        </dict>
-// CHECK:        <dict>
-// CHECK:         <key>line</key><integer>31</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>3</integer>
-// CHECK:     <key>extended_message</key>
-// CHECK:     <string>Assuming 'cond' is not equal to 0</string>
-// CHECK:     <key>message</key>
-// CHECK:     <string>Assuming 'cond' is not equal to 0</string>
-// 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>31</integer>
-// CHECK:           <key>col</key><integer>9</integer>
-// CHECK:           <key>file</key><integer>0</integer>
-// CHECK:          </dict>
-// CHECK:          <dict>
-// CHECK:           <key>line</key><integer>31</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>33</integer>
-// CHECK:           <key>col</key><integer>7</integer>
-// CHECK:           <key>file</key><integer>0</integer>
-// CHECK:          </dict>
-// CHECK:          <dict>
-// CHECK:           <key>line</key><integer>33</integer>
-// CHECK:           <key>col</key><integer>14</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>event</string>
-// CHECK:     <key>location</key>
-// CHECK:     <dict>
-// CHECK:      <key>line</key><integer>33</integer>
-// CHECK:      <key>col</key><integer>30</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>33</integer>
-// CHECK:         <key>col</key><integer>30</integer>
-// CHECK:         <key>file</key><integer>0</integer>
-// CHECK:        </dict>
-// CHECK:        <dict>
-// CHECK:         <key>line</key><integer>33</integer>
-// CHECK:         <key>col</key><integer>50</integer>
-// CHECK:         <key>file</key><integer>0</integer>
-// CHECK:        </dict>
-// CHECK:       </array>
-// CHECK:     </array>
-// CHECK:     <key>depth</key><integer>3</integer>
-// CHECK:     <key>extended_message</key>
-// CHECK:     <string>NSNumber boxed expression produces an object with a +0 retain count</string>
-// CHECK:     <key>message</key>
-// CHECK:     <string>NSNumber boxed expression produces an object with a +0 retain count</string>
-// 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>33</integer>
-// CHECK:           <key>col</key><integer>7</integer>
-// CHECK:           <key>file</key><integer>0</integer>
-// CHECK:          </dict>
-// CHECK:          <dict>
-// CHECK:           <key>line</key><integer>33</integer>
-// CHECK:           <key>col</key><integer>14</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>35</integer>
-// CHECK:           <key>col</key><integer>7</integer>
-// CHECK:           <key>file</key><integer>0</integer>
-// CHECK:          </dict>
-// CHECK:          <dict>
-// CHECK:           <key>line</key><integer>35</integer>
-// CHECK:           <key>col</key><integer>14</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>35</integer>
-// CHECK:           <key>col</key><integer>7</integer>
-// CHECK:           <key>file</key><integer>0</integer>
-// CHECK:          </dict>
-// CHECK:          <dict>
-// CHECK:           <key>line</key><integer>35</integer>
-// CHECK:           <key>col</key><integer>14</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>35</integer>
-// CHECK:           <key>col</key><integer>33</integer>
-// CHECK:           <key>file</key><integer>0</integer>
-// CHECK:          </dict>
-// CHECK:          <dict>
-// CHECK:           <key>line</key><integer>35</integer>
-// CHECK:           <key>col</key><integer>38</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>event</string>
-// CHECK:     <key>location</key>
-// CHECK:     <dict>
-// CHECK:      <key>line</key><integer>35</integer>
-// CHECK:      <key>col</key><integer>33</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>35</integer>
-// CHECK:         <key>col</key><integer>33</integer>
-// CHECK:         <key>file</key><integer>0</integer>
-// CHECK:        </dict>
-// CHECK:        <dict>
-// CHECK:         <key>line</key><integer>35</integer>
-// CHECK:         <key>col</key><integer>50</integer>
-// CHECK:         <key>file</key><integer>0</integer>
-// CHECK:        </dict>
-// CHECK:       </array>
-// CHECK:     </array>
-// CHECK:     <key>depth</key><integer>3</integer>
-// CHECK:     <key>extended_message</key>
-// CHECK:     <string>Calling anonymous block</string>
-// CHECK:     <key>message</key>
-// CHECK:     <string>Calling anonymous block</string>
-// CHECK:    </dict>
-// CHECK:    <dict>
-// CHECK:     <key>kind</key><string>event</string>
-// CHECK:     <key>location</key>
-// CHECK:     <dict>
-// CHECK:      <key>line</key><integer>49</integer>
-// CHECK:      <key>col</key><integer>40</integer>
-// CHECK:      <key>file</key><integer>0</integer>
-// CHECK:     </dict>
-// CHECK:     <key>depth</key><integer>4</integer>
-// CHECK:     <key>extended_message</key>
-// CHECK:     <string>Entered call</string>
-// CHECK:     <key>message</key>
-// CHECK:     <string>Entered call</string>
-// 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>49</integer>
-// CHECK:           <key>col</key><integer>40</integer>
-// CHECK:           <key>file</key><integer>0</integer>
-// CHECK:          </dict>
-// CHECK:          <dict>
-// CHECK:           <key>line</key><integer>49</integer>
-// CHECK:           <key>col</key><integer>40</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>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>50</integer>
-// CHECK:           <key>col</key><integer>17</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>event</string>
-// CHECK:     <key>location</key>
-// CHECK:     <dict>
-// CHECK:      <key>line</key><integer>50</integer>
-// CHECK:      <key>col</key><integer>21</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>50</integer>
-// CHECK:         <key>col</key><integer>21</integer>
-// CHECK:         <key>file</key><integer>0</integer>
-// CHECK:        </dict>
-// CHECK:        <dict>
-// CHECK:         <key>line</key><integer>50</integer>
-// CHECK:         <key>col</key><integer>39</integer>
-// CHECK:         <key>file</key><integer>0</integer>
-// CHECK:        </dict>
-// CHECK:       </array>
-// CHECK:       <array>
-// CHECK:        <dict>
-// CHECK:         <key>line</key><integer>50</integer>
-// CHECK:         <key>col</key><integer>22</integer>
-// CHECK:         <key>file</key><integer>0</integer>
-// CHECK:        </dict>
-// CHECK:        <dict>
-// CHECK:         <key>line</key><integer>50</integer>
-// CHECK:         <key>col</key><integer>31</integer>
-// CHECK:         <key>file</key><integer>0</integer>
-// CHECK:        </dict>
-// CHECK:       </array>
-// CHECK:     </array>
-// CHECK:     <key>depth</key><integer>4</integer>
-// CHECK:     <key>extended_message</key>
-// CHECK:     <string>Reference count incremented. The object now has a +1 retain count</string>
-// CHECK:     <key>message</key>
-// CHECK:     <string>Reference count incremented. The object now has a +1 retain count</string>
-// 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>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>50</integer>
-// CHECK:           <key>col</key><integer>17</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>52</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>col</key><integer>10</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>event</string>
-// CHECK:     <key>location</key>
-// CHECK:     <dict>
-// CHECK:      <key>line</key><integer>35</integer>
-// CHECK:      <key>col</key><integer>33</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>35</integer>
-// CHECK:         <key>col</key><integer>33</integer>
-// CHECK:         <key>file</key><integer>0</integer>
-// CHECK:        </dict>
-// CHECK:        <dict>
-// CHECK:         <key>line</key><integer>35</integer>
-// CHECK:         <key>col</key><integer>50</integer>
-// CHECK:         <key>file</key><integer>0</integer>
-// CHECK:        </dict>
-// CHECK:       </array>
-// CHECK:     </array>
-// CHECK:     <key>depth</key><integer>3</integer>
-// CHECK:     <key>extended_message</key>
-// CHECK:     <string>Returning to caller</string>
-// CHECK:     <key>message</key>
-// CHECK:     <string>Returning to caller</string>
-// 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>35</integer>
-// CHECK:           <key>col</key><integer>33</integer>
-// CHECK:           <key>file</key><integer>0</integer>
-// CHECK:          </dict>
-// CHECK:          <dict>
-// CHECK:           <key>line</key><integer>35</integer>
-// CHECK:           <key>col</key><integer>38</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>35</integer>
-// CHECK:           <key>col</key><integer>7</integer>
-// CHECK:           <key>file</key><integer>0</integer>
-// CHECK:          </dict>
-// CHECK:          <dict>
-// CHECK:           <key>line</key><integer>35</integer>
-// CHECK:           <key>col</key><integer>14</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>35</integer>
-// CHECK:           <key>col</key><integer>7</integer>
-// CHECK:           <key>file</key><integer>0</integer>
-// CHECK:          </dict>
-// CHECK:          <dict>
-// CHECK:           <key>line</key><integer>35</integer>
-// CHECK:           <key>col</key><integer>14</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>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>37</integer>
-// CHECK:           <key>col</key><integer>8</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>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>37</integer>
-// CHECK:           <key>col</key><integer>8</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>40</integer>
-// CHECK:           <key>col</key><integer>7</integer>
-// CHECK:           <key>file</key><integer>0</integer>
-// CHECK:          </dict>
-// CHECK:          <dict>
-// CHECK:           <key>line</key><integer>40</integer>
-// CHECK:           <key>col</key><integer>18</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>event</string>
-// CHECK:     <key>location</key>
-// CHECK:     <dict>
-// CHECK:      <key>line</key><integer>23</integer>
-// CHECK:      <key>col</key><integer>3</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>23</integer>
-// CHECK:         <key>col</key><integer>3</integer>
-// CHECK:         <key>file</key><integer>0</integer>
-// CHECK:        </dict>
-// CHECK:        <dict>
-// CHECK:         <key>line</key><integer>23</integer>
-// CHECK:         <key>col</key><integer>58</integer>
-// CHECK:         <key>file</key><integer>0</integer>
-// CHECK:        </dict>
-// CHECK:       </array>
-// CHECK:     </array>
-// CHECK:     <key>depth</key><integer>2</integer>
-// CHECK:     <key>extended_message</key>
-// CHECK:     <string>Returning to caller</string>
-// CHECK:     <key>message</key>
-// CHECK:     <string>Returning to caller</string>
-// 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>23</integer>
-// CHECK:           <key>col</key><integer>3</integer>
-// CHECK:           <key>file</key><integer>0</integer>
-// CHECK:          </dict>
-// CHECK:          <dict>
-// CHECK:           <key>line</key><integer>23</integer>
-// CHECK:           <key>col</key><integer>16</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>24</integer>
-// CHECK:           <key>col</key><integer>3</integer>
-// CHECK:           <key>file</key><integer>0</integer>
-// CHECK:          </dict>
-// CHECK:          <dict>
-// CHECK:           <key>line</key><integer>24</integer>
-// CHECK:           <key>col</key><integer>16</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>event</string>
-// CHECK:     <key>location</key>
-// CHECK:     <dict>
-// CHECK:      <key>line</key><integer>24</integer>
-// CHECK:      <key>col</key><integer>3</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>24</integer>
-// CHECK:         <key>col</key><integer>3</integer>
-// CHECK:         <key>file</key><integer>0</integer>
-// CHECK:        </dict>
-// CHECK:        <dict>
-// CHECK:         <key>line</key><integer>24</integer>
-// CHECK:         <key>col</key><integer>58</integer>
-// CHECK:         <key>file</key><integer>0</integer>
-// CHECK:        </dict>
-// CHECK:       </array>
-// CHECK:     </array>
-// CHECK:     <key>depth</key><integer>2</integer>
-// CHECK:     <key>extended_message</key>
-// CHECK:     <string>Calling anonymous block</string>
-// CHECK:     <key>message</key>
-// CHECK:     <string>Calling anonymous block</string>
-// CHECK:    </dict>
-// CHECK:    <dict>
-// 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>23</integer>
-// CHECK:      <key>file</key><integer>0</integer>
-// CHECK:     </dict>
-// CHECK:     <key>depth</key><integer>3</integer>
-// CHECK:     <key>extended_message</key>
-// CHECK:     <string>Entered call from 'reallyPerformAction'</string>
-// CHECK:     <key>message</key>
-// CHECK:     <string>Entered call from 'reallyPerformAction'</string>
-// 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>29</integer>
-// CHECK:           <key>col</key><integer>23</integer>
-// CHECK:           <key>file</key><integer>0</integer>
-// CHECK:          </dict>
-// CHECK:          <dict>
-// CHECK:           <key>line</key><integer>29</integer>
-// CHECK:           <key>col</key><integer>23</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>31</integer>
-// CHECK:           <key>col</key><integer>5</integer>
-// CHECK:           <key>file</key><integer>0</integer>
-// CHECK:          </dict>
-// CHECK:          <dict>
-// CHECK:           <key>line</key><integer>31</integer>
-// CHECK:           <key>col</key><integer>6</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>31</integer>
-// CHECK:           <key>col</key><integer>5</integer>
-// CHECK:           <key>file</key><integer>0</integer>
-// CHECK:          </dict>
-// CHECK:          <dict>
-// CHECK:           <key>line</key><integer>31</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>31</integer>
-// CHECK:           <key>col</key><integer>9</integer>
-// CHECK:           <key>file</key><integer>0</integer>
-// CHECK:          </dict>
-// CHECK:          <dict>
-// CHECK:           <key>line</key><integer>31</integer>
-// CHECK:           <key>col</key><integer>12</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>event</string>
-// CHECK:     <key>location</key>
-// CHECK:     <dict>
-// CHECK:      <key>line</key><integer>31</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>31</integer>
-// CHECK:         <key>col</key><integer>9</integer>
-// CHECK:         <key>file</key><integer>0</integer>
-// CHECK:        </dict>
-// CHECK:        <dict>
-// CHECK:         <key>line</key><integer>31</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>3</integer>
-// CHECK:     <key>extended_message</key>
-// CHECK:     <string>Assuming 'cond' is not equal to 0</string>
-// CHECK:     <key>message</key>
-// CHECK:     <string>Assuming 'cond' is not equal to 0</string>
-// 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>31</integer>
-// CHECK:           <key>col</key><integer>9</integer>
-// CHECK:           <key>file</key><integer>0</integer>
-// CHECK:          </dict>
-// CHECK:          <dict>
-// CHECK:           <key>line</key><integer>31</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>33</integer>
-// CHECK:           <key>col</key><integer>7</integer>
-// CHECK:           <key>file</key><integer>0</integer>
-// CHECK:          </dict>
-// CHECK:          <dict>
-// CHECK:           <key>line</key><integer>33</integer>
-// CHECK:           <key>col</key><integer>14</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>33</integer>
-// CHECK:           <key>col</key><integer>7</integer>
-// CHECK:           <key>file</key><integer>0</integer>
-// CHECK:          </dict>
-// CHECK:          <dict>
-// CHECK:           <key>line</key><integer>33</integer>
-// CHECK:           <key>col</key><integer>14</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>35</integer>
-// CHECK:           <key>col</key><integer>7</integer>
-// CHECK:           <key>file</key><integer>0</integer>
-// CHECK:          </dict>
-// CHECK:          <dict>
-// CHECK:           <key>line</key><integer>35</integer>
-// CHECK:           <key>col</key><integer>14</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>35</integer>
-// CHECK:           <key>col</key><integer>7</integer>
-// CHECK:           <key>file</key><integer>0</integer>
-// CHECK:          </dict>
-// CHECK:          <dict>
-// CHECK:           <key>line</key><integer>35</integer>
-// CHECK:           <key>col</key><integer>14</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>35</integer>
-// CHECK:           <key>col</key><integer>33</integer>
-// CHECK:           <key>file</key><integer>0</integer>
-// CHECK:          </dict>
-// CHECK:          <dict>
-// CHECK:           <key>line</key><integer>35</integer>
-// CHECK:           <key>col</key><integer>38</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>event</string>
-// CHECK:     <key>location</key>
-// CHECK:     <dict>
-// CHECK:      <key>line</key><integer>35</integer>
-// CHECK:      <key>col</key><integer>33</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>35</integer>
-// CHECK:         <key>col</key><integer>33</integer>
-// CHECK:         <key>file</key><integer>0</integer>
-// CHECK:        </dict>
-// CHECK:        <dict>
-// CHECK:         <key>line</key><integer>35</integer>
-// CHECK:         <key>col</key><integer>50</integer>
-// CHECK:         <key>file</key><integer>0</integer>
-// CHECK:        </dict>
-// CHECK:       </array>
-// CHECK:     </array>
-// CHECK:     <key>depth</key><integer>3</integer>
-// CHECK:     <key>extended_message</key>
-// CHECK:     <string>Calling anonymous block</string>
-// CHECK:     <key>message</key>
-// CHECK:     <string>Calling anonymous block</string>
-// CHECK:    </dict>
-// CHECK:    <dict>
-// CHECK:     <key>kind</key><string>event</string>
-// CHECK:     <key>location</key>
-// CHECK:     <dict>
-// CHECK:      <key>line</key><integer>49</integer>
-// CHECK:      <key>col</key><integer>40</integer>
-// CHECK:      <key>file</key><integer>0</integer>
-// CHECK:     </dict>
-// CHECK:     <key>depth</key><integer>4</integer>
-// CHECK:     <key>extended_message</key>
-// CHECK:     <string>Entered call</string>
-// CHECK:     <key>message</key>
-// CHECK:     <string>Entered call</string>
-// 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>49</integer>
-// CHECK:           <key>col</key><integer>40</integer>
-// CHECK:           <key>file</key><integer>0</integer>
-// CHECK:          </dict>
-// CHECK:          <dict>
-// CHECK:           <key>line</key><integer>49</integer>
-// CHECK:           <key>col</key><integer>40</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>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>50</integer>
-// CHECK:           <key>col</key><integer>17</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>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>50</integer>
-// CHECK:           <key>col</key><integer>17</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>52</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>col</key><integer>10</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>event</string>
-// CHECK:     <key>location</key>
-// CHECK:     <dict>
-// CHECK:      <key>line</key><integer>52</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>52</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>col</key><integer>21</integer>
-// CHECK:         <key>file</key><integer>0</integer>
-// CHECK:        </dict>
-// CHECK:       </array>
-// CHECK:     </array>
-// CHECK:     <key>depth</key><integer>4</integer>
-// CHECK:     <key>extended_message</key>
-// CHECK:     <string>Object leaked: allocated object of type NSNumber * is not referenced later in this execution path and has a retain count of +1</string>
-// CHECK:     <key>message</key>
-// CHECK:     <string>Object leaked: allocated object of type NSNumber * is not referenced later in this execution path and has a retain count of +1</string>
-// CHECK:    </dict>
-// CHECK:   </array>
-// CHECK:   <key>description</key><string>Potential leak of an object of type NSNumber *</string>
-// CHECK:   <key>category</key><string>Memory (Core Foundation/Objective-C)</string>
-// CHECK:   <key>type</key><string>Leak</string>
-// CHECK:  <key>location</key>
-// CHECK:  <dict>
-// CHECK:   <key>line</key><integer>52</integer>
-// CHECK:   <key>col</key><integer>5</integer>
-// CHECK:   <key>file</key><integer>0</integer>
-// CHECK:  </dict>
-// CHECK:  </dict>
-// CHECK: </array>

Modified: cfe/trunk/test/Analysis/osobject-retain-release.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Analysis/osobject-retain-release.cpp?rev=350867&r1=350866&r2=350867&view=diff
==============================================================================
--- cfe/trunk/test/Analysis/osobject-retain-release.cpp (original)
+++ cfe/trunk/test/Analysis/osobject-retain-release.cpp Thu Jan 10 10:15:57 2019
@@ -117,14 +117,14 @@ void os_consume_ok(OS_CONSUME OSObject *
 }
 
 void use_os_consume_violation() {
-  OSObject *obj = new OSObject; // expected-note{{Operator 'new' returns an OSObject of type OSObject with a +1 retain count}}
+  OSObject *obj = new OSObject; // expected-note{{Operator 'new' returns an OSObject of type 'OSObject' with a +1 retain count}}
   os_consume_violation(obj); // expected-note{{Calling 'os_consume_violation'}}
                              // expected-note at -1{{Returning from 'os_consume_violation'}}
 } // expected-note{{Object leaked: object allocated and stored into 'obj' is not referenced later in this execution path and has a retain count of +1}}
   // expected-warning at -1{{Potential leak of an object stored into 'obj'}}
 
 void use_os_consume_violation_two_args() {
-  OSObject *obj = new OSObject; // expected-note{{Operator 'new' returns an OSObject of type OSObject with a +1 retain count}}
+  OSObject *obj = new OSObject; // expected-note{{Operator 'new' returns an OSObject of type 'OSObject' with a +1 retain count}}
   os_consume_violation_two_args(obj, coin()); // expected-note{{Calling 'os_consume_violation_two_args'}}
                              // expected-note at -1{{Returning from 'os_consume_violation_two_args'}}
 } // expected-note{{Object leaked: object allocated and stored into 'obj' is not referenced later in this execution path and has a retain count of +1}}
@@ -195,7 +195,7 @@ void check_free_no_error() {
 }
 
 void check_free_use_after_free() {
-  OSArray *arr = OSArray::withCapacity(10); // expected-note{{Call to method 'OSArray::withCapacity' returns an OSObject of type OSArray with a +1 retain count}}
+  OSArray *arr = OSArray::withCapacity(10); // expected-note{{Call to method 'OSArray::withCapacity' returns an OSObject of type 'OSArray' with a +1 retain count}}
   arr->retain(); // expected-note{{Reference count incremented. The object now has a +2 retain count}}
   arr->free(); // expected-note{{Object released}}
   arr->retain(); // expected-warning{{Reference-counted object is used after it is released}}
@@ -203,13 +203,13 @@ void check_free_use_after_free() {
 }
 
 unsigned int check_leak_explicit_new() {
-  OSArray *arr = new OSArray; // expected-note{{Operator 'new' returns an OSObject of type OSArray with a +1 retain count}}
+  OSArray *arr = new OSArray; // expected-note{{Operator 'new' returns an OSObject of type 'OSArray' with a +1 retain count}}
   return arr->getCount(); // expected-note{{Object leaked: object allocated and stored into 'arr' is not referenced later in this execution path and has a retain count of +1}}
                           // expected-warning at -1{{Potential leak of an object stored into 'arr'}}
 }
 
 unsigned int check_leak_factory() {
-  OSArray *arr = OSArray::withCapacity(10); // expected-note{{Call to method 'OSArray::withCapacity' returns an OSObject of type OSArray with a +1 retain count}}
+  OSArray *arr = OSArray::withCapacity(10); // expected-note{{Call to method 'OSArray::withCapacity' returns an OSObject of type 'OSArray' with a +1 retain count}}
   return arr->getCount(); // expected-note{{Object leaked: object allocated and stored into 'arr' is not referenced later in this execution path and has a retain count of +1}}
                           // expected-warning at -1{{Potential leak of an object stored into 'arr'}}
 }
@@ -228,18 +228,18 @@ void check_custom_iterator_rule(OSArray
 }
 
 void check_iterator_leak(OSArray *arr) {
-  arr->getIterator(); // expected-note{{Call to method 'OSArray::getIterator' returns an OSObject of type OSIterator with a +1 retain count}}
-} // expected-note{{Object leaked: allocated object of type OSIterator is not referenced later}}
-  // expected-warning at -1{{Potential leak of an object of type OSIterator}}
+  arr->getIterator(); // expected-note{{Call to method 'OSArray::getIterator' returns an OSObject of type 'OSIterator' with a +1 retain count}}
+} // expected-note{{Object leaked: allocated object of type 'OSIterator' is not referenced later}}
+  // expected-warning at -1{{Potential leak of an object of type 'OSIterator}}'
 
 void check_no_invalidation() {
-  OSArray *arr = OSArray::withCapacity(10); // expected-note{{Call to method 'OSArray::withCapacity' returns an OSObject of type OSArray with a +1 retain count}}
+  OSArray *arr = OSArray::withCapacity(10); // expected-note{{Call to method 'OSArray::withCapacity' returns an OSObject of type 'OSArray' with a +1 retain count}}
   OtherStruct::doNothingToArray(arr);
 } // expected-warning{{Potential leak of an object stored into 'arr'}}
   // expected-note at -1{{Object leaked}}
 
 void check_no_invalidation_other_struct() {
-  OSArray *arr = OSArray::withCapacity(10); // expected-note{{Call to method 'OSArray::withCapacity' returns an OSObject of type OSArray with a +1 retain count}}
+  OSArray *arr = OSArray::withCapacity(10); // expected-note{{Call to method 'OSArray::withCapacity' returns an OSObject of type 'OSArray' with a +1 retain count}}
   OtherStruct other(arr); // expected-warning{{Potential leak}}
                           // expected-note at -1{{Object leaked}}
 }
@@ -266,8 +266,8 @@ struct ArrayOwner : public OSObject {
 };
 
 OSArray *generateArray() {
-  return OSArray::withCapacity(10); // expected-note{{Call to method 'OSArray::withCapacity' returns an OSObject of type OSArray with a +1 retain count}}
-                                    // expected-note at -1{{Call to method 'OSArray::withCapacity' returns an OSObject of type OSArray with a +1 retain count}}
+  return OSArray::withCapacity(10); // expected-note{{Call to method 'OSArray::withCapacity' returns an OSObject of type 'OSArray' with a +1 retain count}}
+                                    // expected-note at -1{{Call to method 'OSArray::withCapacity' returns an OSObject of type 'OSArray' with a +1 retain count}}
 }
 
 unsigned int check_leak_good_error_message() {
@@ -285,7 +285,7 @@ unsigned int check_leak_msg_temporary()
   return generateArray()->getCount(); // expected-warning{{Potential leak of an object}}
                                       // expected-note at -1{{Calling 'generateArray'}}
                                       // expected-note at -2{{Returning from 'generateArray'}}
-                                      // expected-note at -3{{Object leaked: allocated object of type OSArray is not referenced later in this execution path and has a retain count of +1}}
+                                      // expected-note at -3{{Object leaked: allocated object of type 'OSArray' is not referenced later in this execution path and has a retain count of +1}}
 }
 
 void check_confusing_getters() {
@@ -354,14 +354,14 @@ void check_dynamic_cast_null_check() {
 }
 
 void use_after_release() {
-  OSArray *arr = OSArray::withCapacity(10); // expected-note{{Call to method 'OSArray::withCapacity' returns an OSObject of type OSArray with a +1 retain count}}
+  OSArray *arr = OSArray::withCapacity(10); // expected-note{{Call to method 'OSArray::withCapacity' returns an OSObject of type 'OSArray' with a +1 retain count}}
   arr->release(); // expected-note{{Object released}}
   arr->getCount(); // expected-warning{{Reference-counted object is used after it is released}}
                    // expected-note at -1{{Reference-counted object is used after it is released}}
 }
 
 void potential_leak() {
-  OSArray *arr = OSArray::withCapacity(10); // expected-note{{Call to method 'OSArray::withCapacity' returns an OSObject of type OSArray with a +1 retain count}}
+  OSArray *arr = OSArray::withCapacity(10); // expected-note{{Call to method 'OSArray::withCapacity' returns an OSObject of type 'OSArray' with a +1 retain count}}
   arr->retain(); // expected-note{{Reference count incremented. The object now has a +2 retain count}}
   arr->release(); // expected-note{{Reference count decremented. The object now has a +1 retain count}}
   arr->getCount();
@@ -412,7 +412,7 @@ unsigned int no_warn_ok_release(ArrayOwn
 }
 
 unsigned int warn_on_overrelease_with_unknown_source(ArrayOwner *owner) {
-  OSArray *arr = owner->getArraySourceUnknown(); // expected-note{{Call to method 'ArrayOwner::getArraySourceUnknown' returns an OSObject of type OSArray with a +0 retain count}}
+  OSArray *arr = owner->getArraySourceUnknown(); // expected-note{{Call to method 'ArrayOwner::getArraySourceUnknown' returns an OSObject of type 'OSArray' with a +0 retain count}}
   arr->release(); // expected-warning{{Incorrect decrement of the reference count of an object that is not owned at this point by the caller}}
                   // expected-note at -1{{Incorrect decrement of the reference count of an object that is not owned at this point by the caller}}
   return arr->getCount();

Modified: cfe/trunk/test/Analysis/retain-release-arc.m
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Analysis/retain-release-arc.m?rev=350867&r1=350866&r2=350867&view=diff
==============================================================================
--- cfe/trunk/test/Analysis/retain-release-arc.m (original)
+++ cfe/trunk/test/Analysis/retain-release-arc.m Thu Jan 10 10:15:57 2019
@@ -90,7 +90,7 @@ void _dispatch_object_validate(dispatch_
   CFErrorRef error;
   CFDictionaryRef testDict = CFPropertyListCreateWithData(kCFAllocatorDefault, (__bridge CFDataRef)plistData, 0, 0, &error);
 #if HAS_ARC
-      // expected-note at -2 {{Call to function 'CFPropertyListCreateWithData' returns a Core Foundation object of type CFPropertyListRef with a +1 retain count}}
+      // expected-note at -2 {{Call to function 'CFPropertyListCreateWithData' returns a Core Foundation object of type 'CFPropertyListRef' with a +1 retain count}}
 #endif
   return (__bridge NSDictionary *)testDict;
 #if HAS_ARC

Modified: cfe/trunk/test/Analysis/retain-release-path-notes.m
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Analysis/retain-release-path-notes.m?rev=350867&r1=350866&r2=350867&view=diff
==============================================================================
--- cfe/trunk/test/Analysis/retain-release-path-notes.m (original)
+++ cfe/trunk/test/Analysis/retain-release-path-notes.m Thu Jan 10 10:15:57 2019
@@ -49,7 +49,7 @@ void creationViaAlloc () {
 }
 
 void creationViaCFCreate () {
-  CFTypeRef leaked = CFCreateSomething(); // expected-note{{Call to function 'CFCreateSomething' returns a Core Foundation object of type CFTypeRef with a +1 retain count}}
+  CFTypeRef leaked = CFCreateSomething(); // expected-note{{Call to function 'CFCreateSomething' returns a Core Foundation object of type 'CFTypeRef' with a +1 retain count}}
   return; // expected-warning{{leak}} expected-note{{Object leaked: object allocated and stored into 'leaked' is not referenced later in this execution path and has a retain count of +1}}
 }
 
@@ -68,7 +68,7 @@ void acquisitionViaProperty (Foo *foo) {
 }
 
 void acquisitionViaCFFunction () {
-  CFTypeRef leaked = CFGetSomething(); // expected-note{{Call to function 'CFGetSomething' returns a Core Foundation object of type CFTypeRef with a +0 retain count}}
+  CFTypeRef leaked = CFGetSomething(); // expected-note{{Call to function 'CFGetSomething' returns a Core Foundation object of type 'CFTypeRef' with a +0 retain count}}
   CFRetain(leaked); // expected-note{{Reference count incremented. The object now has a +1 retain count}}
   return; // expected-warning{{leak}} expected-note{{Object leaked: object allocated and stored into 'leaked' is not referenced later in this execution path and has a retain count of +1}}
 }
@@ -99,19 +99,19 @@ void autoreleaseUnowned (Foo *foo) {
 }
 
 void makeCollectableIgnored() {
-  CFTypeRef leaked = CFCreateSomething(); // expected-note{{Call to function 'CFCreateSomething' returns a Core Foundation object of type CFTypeRef with a +1 retain count}}
+  CFTypeRef leaked = CFCreateSomething(); // expected-note{{Call to function 'CFCreateSomething' returns a Core Foundation object of type 'CFTypeRef' with a +1 retain count}}
   CFMakeCollectable(leaked);
   NSMakeCollectable(leaked);
   return; // expected-warning{{leak}} expected-note{{Object leaked: object allocated and stored into 'leaked' is not referenced later in this execution path and has a retain count of +1}}
 }
 
 CFTypeRef CFCopyRuleViolation () {
-  CFTypeRef object = CFGetSomething(); // expected-note{{Call to function 'CFGetSomething' returns a Core Foundation object of type CFTypeRef with a +0 retain count}}
+  CFTypeRef object = CFGetSomething(); // expected-note{{Call to function 'CFGetSomething' returns a Core Foundation object of type 'CFTypeRef' with a +0 retain count}}
   return object; // expected-warning{{Object with a +0 retain count returned to caller where a +1 (owning) retain count is expected}} expected-note{{Object with a +0 retain count returned to caller where a +1 (owning) retain count is expected}}
 }
 
 CFTypeRef CFGetRuleViolation () {
-  CFTypeRef object = CFCreateSomething(); // expected-note{{Call to function 'CFCreateSomething' returns a Core Foundation object of type CFTypeRef with a +1 retain count}}
+  CFTypeRef object = CFCreateSomething(); // expected-note{{Call to function 'CFCreateSomething' returns a Core Foundation object of type 'CFTypeRef' with a +1 retain count}}
   return object; // expected-warning{{leak}} expected-note{{Object leaked: object allocated and stored into 'object' is returned from a function whose name ('CFGetRuleViolation') does not contain 'Copy' or 'Create'.  This violates the naming convention rules given in the Memory Management Guide for Core Foundation}}
 }
 
@@ -227,7 +227,7 @@ static int Cond;
                                 // expected-note at -1 {{Method returns an instance of MyObj with a +1 retain count}}
                                 // expected-note at -2 {{Calling 'initX'}}
                                 // expected-note at -3 {{Returning from 'initX'}}
-                                // expected-note at -4 {{Object leaked: allocated object of type MyObj * is not referenced later in this execution path and has a retain count of +1}}
+                                // expected-note at -4 {{Object leaked: allocated object of type 'MyObj *' is not referenced later in this execution path and has a retain count of +1}}
   // initI is inlined because the allocation happens within initY
   id y = [[MyObj alloc] initY];
                                 // expected-note at -1 {{Calling 'initY'}}
@@ -244,20 +244,20 @@ static int Cond;
 
 
 void CFOverAutorelease() {
-  CFTypeRef object = CFCreateSomething(); // expected-note{{Call to function 'CFCreateSomething' returns a Core Foundation object of type CFTypeRef with a +1 retain count}}
+  CFTypeRef object = CFCreateSomething(); // expected-note{{Call to function 'CFCreateSomething' returns a Core Foundation object of type 'CFTypeRef' with a +1 retain count}}
   CFAutorelease(object); // expected-note{{Object autoreleased}}
   CFAutorelease(object); // expected-note{{Object autoreleased}}
   return; // expected-warning{{Object autoreleased too many times}} expected-note{{Object was autoreleased 2 times but the object has a +1 retain count}}
 }
 
 void CFAutoreleaseUnowned() {
-  CFTypeRef object = CFGetSomething(); // expected-note{{Call to function 'CFGetSomething' returns a Core Foundation object of type CFTypeRef with a +0 retain count}}
+  CFTypeRef object = CFGetSomething(); // expected-note{{Call to function 'CFGetSomething' returns a Core Foundation object of type 'CFTypeRef' with a +0 retain count}}
   CFAutorelease(object); // expected-note{{Object autoreleased}}
   return; // expected-warning{{Object autoreleased too many times}} expected-note{{Object was autoreleased but has a +0 retain count}}
 }
 
 void CFAutoreleaseUnownedMixed() {
-  CFTypeRef object = CFGetSomething(); // expected-note{{Call to function 'CFGetSomething' returns a Core Foundation object of type CFTypeRef with a +0 retain count}}
+  CFTypeRef object = CFGetSomething(); // expected-note{{Call to function 'CFGetSomething' returns a Core Foundation object of type 'CFTypeRef' with a +0 retain count}}
   CFAutorelease(object); // expected-note{{Object autoreleased}}
   [(id)object autorelease]; // expected-note{{Object autoreleased}}
   return; // expected-warning{{Object autoreleased too many times}} expected-note{{Object was autoreleased 2 times but the object has a +0 retain count}}

Modified: cfe/trunk/test/Analysis/retaincountchecker-compoundregion.m
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Analysis/retaincountchecker-compoundregion.m?rev=350867&r1=350866&r2=350867&view=diff
==============================================================================
--- cfe/trunk/test/Analysis/retaincountchecker-compoundregion.m (original)
+++ cfe/trunk/test/Analysis/retaincountchecker-compoundregion.m Thu Jan 10 10:15:57 2019
@@ -19,7 +19,7 @@ void foo(CFAllocatorRef allocator) {
   int width = 0;
   int height = 0;
   CFTypeRef* values = (CFTypeRef[]){
-    CFNumberCreate(allocator, kCFNumberSInt32Type, &width), //expected-warning{{Potential leak of an object of type CFNumberRef}}
-    CFNumberCreate(allocator, kCFNumberSInt32Type, &height), //expected-warning{{Potential leak of an object of type CFNumberRef}}
+    CFNumberCreate(allocator, kCFNumberSInt32Type, &width), //expected-warning{{Potential leak of an object of type 'CFNumberRef'}}
+    CFNumberCreate(allocator, kCFNumberSInt32Type, &height), //expected-warning{{Potential leak of an object of type 'CFNumberRef'}}
   };
 }




More information about the cfe-commits mailing list