Author: zaks
Date: Thu Dec 15 16:55:03 2016
New Revision: 289883

URL: http://llvm.org/viewvc/llvm-project?rev=289883&view=rev
Log:
[analyzer] Include type name in Retain Count Checker diagnostics

The more detailed diagnostic will make identifying which object the
diagnostics refer to easier.

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

Modified:
    cfe/trunk/lib/StaticAnalyzer/Checkers/RetainCountChecker.cpp
    cfe/trunk/test/Analysis/edges-new.mm
    cfe/trunk/test/Analysis/inlining/path-notes.m
    cfe/trunk/test/Analysis/objc-arc.m
    cfe/trunk/test/Analysis/plist-output-alternate.m
    cfe/trunk/test/Analysis/retain-release-arc.m
    cfe/trunk/test/Analysis/retain-release-path-notes-gc.m
    cfe/trunk/test/Analysis/retain-release-path-notes.m

Modified: cfe/trunk/lib/StaticAnalyzer/Checkers/RetainCountChecker.cpp
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/StaticAnalyzer/Checkers/RetainCountChecker.cpp?rev=289883&r1=289882&r2=289883&view=diff
==============================================================================
--- cfe/trunk/lib/StaticAnalyzer/Checkers/RetainCountChecker.cpp (original)
+++ cfe/trunk/lib/StaticAnalyzer/Checkers/RetainCountChecker.cpp Thu Dec 15 
16:55:03 2016
@@ -1990,11 +1990,23 @@ PathDiagnosticPiece *CFRefReportVisitor:
       }
 
       if (CurrV.getObjKind() == RetEffect::CF) {
-        os << " returns a Core Foundation object with a ";
+        if (Sym->getType().isNull()) {
+          os << " returns a Core Foundation object with a ";
+        } else {
+          os << " returns a Core Foundation object of type "
+             << Sym->getType().getAsString() << " with a ";
+        }
       }
       else {
         assert (CurrV.getObjKind() == RetEffect::ObjC);
-        os << " returns an Objective-C object with a ";
+        QualType T = Sym->getType();
+        if (T.isNull() || !isa<ObjCObjectPointerType>(T)) {
+          os << " returns an Objective-C object with a ";
+        } else {
+          const ObjCObjectPointerType *PT = cast<ObjCObjectPointerType>(T);
+          os << " returns an instance of "
+             << PT->getPointeeType().getAsString() << " with a ";
+        }
       }
 
       if (CurrV.isOwned()) {

Modified: cfe/trunk/test/Analysis/edges-new.mm
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Analysis/edges-new.mm?rev=289883&r1=289882&r2=289883&view=diff
==============================================================================
--- cfe/trunk/test/Analysis/edges-new.mm (original)
+++ cfe/trunk/test/Analysis/edges-new.mm Thu Dec 15 16:55:03 2016
@@ -2438,9 +2438,9 @@ namespace rdar14960554 {
 // CHECK-NEXT:      </array>
 // CHECK-NEXT:      <key>depth</key><integer>0</integer>
 // CHECK-NEXT:      <key>extended_message</key>
-// CHECK-NEXT:      <string>Call to function &apos;CFNumberCreate&apos; 
returns a Core Foundation object with a +1 retain count</string>
+// CHECK-NEXT:      <string>Call to function &apos;CFNumberCreate&apos; 
returns a Core Foundation object of type CFNumberRef with a +1 retain 
count</string>
 // CHECK-NEXT:      <key>message</key>
-// CHECK-NEXT:      <string>Call to function &apos;CFNumberCreate&apos; 
returns a Core Foundation object with a +1 retain count</string>
+// CHECK-NEXT:      <string>Call to function &apos;CFNumberCreate&apos; 
returns a Core Foundation object of type CFNumberRef with a +1 retain 
count</string>
 // CHECK-NEXT:     </dict>
 // CHECK-NEXT:     <dict>
 // CHECK-NEXT:      <key>kind</key><string>control</string>
@@ -11355,9 +11355,9 @@ namespace rdar14960554 {
 // CHECK-NEXT:      </array>
 // CHECK-NEXT:      <key>depth</key><integer>0</integer>
 // CHECK-NEXT:      <key>extended_message</key>
-// CHECK-NEXT:      <string>Method returns an Objective-C object with a +1 
retain count</string>
+// CHECK-NEXT:      <string>Method returns an instance of RDar10797980 with a 
+1 retain count</string>
 // CHECK-NEXT:      <key>message</key>
-// CHECK-NEXT:      <string>Method returns an Objective-C object with a +1 
retain count</string>
+// CHECK-NEXT:      <string>Method returns an instance of RDar10797980 with a 
+1 retain count</string>
 // CHECK-NEXT:     </dict>
 // CHECK-NEXT:     <dict>
 // CHECK-NEXT:      <key>kind</key><string>control</string>
@@ -20325,9 +20325,9 @@ namespace rdar14960554 {
 // CHECK-NEXT:      </array>
 // CHECK-NEXT:      <key>depth</key><integer>0</integer>
 // CHECK-NEXT:      <key>extended_message</key>
-// CHECK-NEXT:      <string>Method returns an Objective-C object with a +1 
retain count</string>
+// CHECK-NEXT:      <string>Method returns an instance of NSObject with a +1 
retain count</string>
 // CHECK-NEXT:      <key>message</key>
-// CHECK-NEXT:      <string>Method returns an Objective-C object with a +1 
retain count</string>
+// CHECK-NEXT:      <string>Method returns an instance of NSObject with a +1 
retain count</string>
 // CHECK-NEXT:     </dict>
 // CHECK-NEXT:     <dict>
 // CHECK-NEXT:      <key>kind</key><string>control</string>

Modified: cfe/trunk/test/Analysis/inlining/path-notes.m
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Analysis/inlining/path-notes.m?rev=289883&r1=289882&r2=289883&view=diff
==============================================================================
--- cfe/trunk/test/Analysis/inlining/path-notes.m (original)
+++ cfe/trunk/test/Analysis/inlining/path-notes.m Thu Dec 15 16:55:03 2016
@@ -160,7 +160,7 @@ id testAutoreleaseTakesEffectInDispatch(
   dispatch_once(&token, ^{});
 
   id x = [[[[NSObject alloc] init] autorelease] autorelease];
-  // expected-note@-1 {{Method returns an Objective-C object with a +1 retain 
count}}
+  // expected-note@-1 {{Method returns an instance of NSObject with a +1 
retain count}}
   // expected-note@-2 {{Object autoreleased}}
   // expected-note@-3 {{Object autoreleased}}
 
@@ -1840,9 +1840,9 @@ void testNullDereferenceInDispatch() {
 // CHECK-NEXT:      </array>
 // CHECK-NEXT:      <key>depth</key><integer>0</integer>
 // CHECK-NEXT:      <key>extended_message</key>
-// CHECK-NEXT:      <string>Method returns an Objective-C object with a +1 
retain count</string>
+// CHECK-NEXT:      <string>Method returns an instance of NSObject with a +1 
retain count</string>
 // CHECK-NEXT:      <key>message</key>
-// CHECK-NEXT:      <string>Method returns an Objective-C object with a +1 
retain count</string>
+// CHECK-NEXT:      <string>Method returns an instance of NSObject with a +1 
retain count</string>
 // CHECK-NEXT:     </dict>
 // CHECK-NEXT:     <dict>
 // CHECK-NEXT:      <key>kind</key><string>control</string>

Modified: cfe/trunk/test/Analysis/objc-arc.m
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Analysis/objc-arc.m?rev=289883&r1=289882&r2=289883&view=diff
==============================================================================
--- cfe/trunk/test/Analysis/objc-arc.m (original)
+++ cfe/trunk/test/Analysis/objc-arc.m Thu Dec 15 16:55:03 2016
@@ -441,9 +441,9 @@ id rdar14061675() {
 // CHECK-NEXT:      </array>
 // CHECK-NEXT:      <key>depth</key><integer>0</integer>
 // CHECK-NEXT:      <key>extended_message</key>
-// CHECK-NEXT:      <string>Call to function &apos;CFDateCreate&apos; returns 
a Core Foundation object with a +1 retain count</string>
+// CHECK-NEXT:      <string>Call to function &apos;CFDateCreate&apos; returns 
a Core Foundation object of type CFDateRef with a +1 retain count</string>
 // CHECK-NEXT:      <key>message</key>
-// CHECK-NEXT:      <string>Call to function &apos;CFDateCreate&apos; returns 
a Core Foundation object with a +1 retain count</string>
+// CHECK-NEXT:      <string>Call to function &apos;CFDateCreate&apos; returns 
a Core Foundation object of type CFDateRef with a +1 retain count</string>
 // CHECK-NEXT:     </dict>
 // CHECK-NEXT:     <dict>
 // CHECK-NEXT:      <key>kind</key><string>control</string>
@@ -911,9 +911,9 @@ id rdar14061675() {
 // CHECK-NEXT:      </array>
 // CHECK-NEXT:      <key>depth</key><integer>0</integer>
 // CHECK-NEXT:      <key>extended_message</key>
-// CHECK-NEXT:      <string>Call to function &apos;CFCreateSomething&apos; 
returns a Core Foundation object with a +1 retain count</string>
+// CHECK-NEXT:      <string>Call to function &apos;CFCreateSomething&apos; 
returns a Core Foundation object of type CFTypeRef with a +1 retain 
count</string>
 // CHECK-NEXT:      <key>message</key>
-// CHECK-NEXT:      <string>Call to function &apos;CFCreateSomething&apos; 
returns a Core Foundation object with a +1 retain count</string>
+// CHECK-NEXT:      <string>Call to function &apos;CFCreateSomething&apos; 
returns a Core Foundation object of type CFTypeRef with a +1 retain 
count</string>
 // CHECK-NEXT:     </dict>
 // CHECK-NEXT:     <dict>
 // CHECK-NEXT:      <key>kind</key><string>control</string>
@@ -1091,9 +1091,9 @@ id rdar14061675() {
 // CHECK-NEXT:      </array>
 // CHECK-NEXT:      <key>depth</key><integer>0</integer>
 // CHECK-NEXT:      <key>extended_message</key>
-// CHECK-NEXT:      <string>Call to function &apos;CFCreateString&apos; 
returns a Core Foundation object with a +1 retain count</string>
+// CHECK-NEXT:      <string>Call to function &apos;CFCreateString&apos; 
returns a Core Foundation object of type CFStringRef with a +1 retain 
count</string>
 // CHECK-NEXT:      <key>message</key>
-// CHECK-NEXT:      <string>Call to function &apos;CFCreateString&apos; 
returns a Core Foundation object with a +1 retain count</string>
+// CHECK-NEXT:      <string>Call to function &apos;CFCreateString&apos; 
returns a Core Foundation object of type CFStringRef with a +1 retain 
count</string>
 // CHECK-NEXT:     </dict>
 // CHECK-NEXT:     <dict>
 // CHECK-NEXT:      <key>kind</key><string>control</string>
@@ -1466,9 +1466,9 @@ id rdar14061675() {
 // CHECK-NEXT:      </array>
 // CHECK-NEXT:      <key>depth</key><integer>0</integer>
 // CHECK-NEXT:      <key>extended_message</key>
-// CHECK-NEXT:      <string>Call to function &apos;CFDateCreate&apos; returns 
a Core Foundation object with a +1 retain count</string>
+// CHECK-NEXT:      <string>Call to function &apos;CFDateCreate&apos; returns 
a Core Foundation object of type CFDateRef with a +1 retain count</string>
 // CHECK-NEXT:      <key>message</key>
-// CHECK-NEXT:      <string>Call to function &apos;CFDateCreate&apos; returns 
a Core Foundation object with a +1 retain count</string>
+// CHECK-NEXT:      <string>Call to function &apos;CFDateCreate&apos; returns 
a Core Foundation object of type CFDateRef with a +1 retain count</string>
 // CHECK-NEXT:     </dict>
 // CHECK-NEXT:     <dict>
 // CHECK-NEXT:      <key>kind</key><string>control</string>
@@ -1782,9 +1782,9 @@ id rdar14061675() {
 // CHECK-NEXT:      </array>
 // CHECK-NEXT:      <key>depth</key><integer>0</integer>
 // CHECK-NEXT:      <key>extended_message</key>
-// CHECK-NEXT:      <string>Call to function &apos;CFCreateString&apos; 
returns a Core Foundation object with a +1 retain count</string>
+// CHECK-NEXT:      <string>Call to function &apos;CFCreateString&apos; 
returns a Core Foundation object of type CFStringRef with a +1 retain 
count</string>
 // CHECK-NEXT:      <key>message</key>
-// CHECK-NEXT:      <string>Call to function &apos;CFCreateString&apos; 
returns a Core Foundation object with a +1 retain count</string>
+// CHECK-NEXT:      <string>Call to function &apos;CFCreateString&apos; 
returns a Core Foundation object of type CFStringRef with a +1 retain 
count</string>
 // CHECK-NEXT:     </dict>
 // CHECK-NEXT:     <dict>
 // CHECK-NEXT:      <key>kind</key><string>control</string>
@@ -1879,9 +1879,9 @@ id rdar14061675() {
 // CHECK-NEXT:      </array>
 // CHECK-NEXT:      <key>depth</key><integer>0</integer>
 // CHECK-NEXT:      <key>extended_message</key>
-// CHECK-NEXT:      <string>Method returns an Objective-C object with a +0 
retain count</string>
+// CHECK-NEXT:      <string>Method returns an instance of NSObject with a +0 
retain count</string>
 // CHECK-NEXT:      <key>message</key>
-// CHECK-NEXT:      <string>Method returns an Objective-C object with a +0 
retain count</string>
+// CHECK-NEXT:      <string>Method returns an instance of NSObject with a +0 
retain count</string>
 // CHECK-NEXT:     </dict>
 // CHECK-NEXT:     <dict>
 // CHECK-NEXT:      <key>kind</key><string>control</string>

Modified: cfe/trunk/test/Analysis/plist-output-alternate.m
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Analysis/plist-output-alternate.m?rev=289883&r1=289882&r2=289883&view=diff
==============================================================================
--- cfe/trunk/test/Analysis/plist-output-alternate.m (original)
+++ cfe/trunk/test/Analysis/plist-output-alternate.m Thu Dec 15 16:55:03 2016
@@ -1191,9 +1191,9 @@ void rdar8331641(int x) {
 // CHECK-NEXT:      </array>
 // CHECK-NEXT:      <key>depth</key><integer>0</integer>
 // CHECK-NEXT:      <key>extended_message</key>
-// CHECK-NEXT:      <string>Call to function &apos;CFNumberCreate&apos; 
returns a Core Foundation object with a +1 retain count</string>
+// CHECK-NEXT:      <string>Call to function &apos;CFNumberCreate&apos; 
returns a Core Foundation object of type CFNumberRef with a +1 retain 
count</string>
 // CHECK-NEXT:      <key>message</key>
-// CHECK-NEXT:      <string>Call to function &apos;CFNumberCreate&apos; 
returns a Core Foundation object with a +1 retain count</string>
+// CHECK-NEXT:      <string>Call to function &apos;CFNumberCreate&apos; 
returns a Core Foundation object of type CFNumberRef with a +1 retain 
count</string>
 // CHECK-NEXT:     </dict>
 // CHECK-NEXT:     <dict>
 // CHECK-NEXT:      <key>kind</key><string>control</string>

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=289883&r1=289882&r2=289883&view=diff
==============================================================================
--- cfe/trunk/test/Analysis/retain-release-arc.m (original)
+++ cfe/trunk/test/Analysis/retain-release-arc.m Thu Dec 15 16:55:03 2016
@@ -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@-2 {{Call to function 'CFPropertyListCreateWithData' 
returns a Core Foundation object with a +1 retain count}}
+      // expected-note@-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-gc.m
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Analysis/retain-release-path-notes-gc.m?rev=289883&r1=289882&r2=289883&view=diff
==============================================================================
--- cfe/trunk/test/Analysis/retain-release-path-notes-gc.m (original)
+++ cfe/trunk/test/Analysis/retain-release-path-notes-gc.m Thu Dec 15 16:55:03 
2016
@@ -40,12 +40,12 @@ CFTypeRef CFGetSomething();
 
 
 void creationViaCFCreate () {
-  CFTypeRef leaked = CFCreateSomething(); // expected-note{{Call to function 
'CFCreateSomething' returns a Core Foundation object with a +1 retain count.  
Core Foundation objects are not automatically garbage collected}}
+  CFTypeRef leaked = CFCreateSomething(); // expected-note{{Call to function 
'CFCreateSomething' returns a Core Foundation object of type CFTypeRef with a 
+1 retain count.  Core Foundation objects are not automatically garbage 
collected}}
   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}}
 }
 
 void makeCollectable () {
-  CFTypeRef leaked = CFCreateSomething(); // expected-note{{Call to function 
'CFCreateSomething' returns a Core Foundation object with a +1 retain count.  
Core Foundation objects are not automatically garbage collected}}
+  CFTypeRef leaked = CFCreateSomething(); // expected-note{{Call to function 
'CFCreateSomething' returns a Core Foundation object of type CFTypeRef with a 
+1 retain count.  Core Foundation objects are not automatically garbage 
collected}}
   CFRetain(leaked); // expected-note{{Reference count incremented. The object 
now has a +2 retain count}}
   CFMakeCollectable(leaked); // expected-note{{In GC mode a call to 
'CFMakeCollectable' decrements an object's retain count and registers the 
object with the garbage collector. An object must have a 0 retain count to be 
garbage collected. After this call its retain count is +1}}
   NSMakeCollectable(leaked); // expected-note{{In GC mode a call to 
'NSMakeCollectable' decrements an object's retain count and registers the 
object with the garbage collector. Since it now has a 0 retain count the object 
can be automatically collected by the garbage collector}}
@@ -54,7 +54,7 @@ void makeCollectable () {
 }
 
 void retainReleaseIgnored () {
-  id object = [[NSObject alloc] init]; // expected-note{{Method returns an 
Objective-C object with a +0 retain count}}
+  id object = [[NSObject alloc] init]; // expected-note{{Method returns an 
instance of NSObject with a +0 retain count}}
   [object retain]; // expected-note{{In GC mode the 'retain' message has no 
effect}}
   [object release]; // expected-note{{In GC mode the 'release' message has no 
effect}}
   [object autorelease]; // expected-note{{In GC mode an 'autorelease' has no 
effect}}
@@ -63,12 +63,12 @@ void retainReleaseIgnored () {
 
 @implementation Foo (FundamentalRuleUnderGC)
 - (id)getViolation {
-  id object = (id) CFCreateSomething(); // expected-note{{Call to function 
'CFCreateSomething' returns a Core Foundation object with a +1 retain count.  
Core Foundation objects are not automatically garbage collected}}
+  id object = (id) CFCreateSomething(); // expected-note{{Call to function 
'CFCreateSomething' returns a Core Foundation object of type CFTypeRef with a 
+1 retain count.  Core Foundation objects are not automatically garbage 
collected}}
   return object; // expected-warning{{leak}} expected-note{{Object returned to 
caller as an owning reference (single retain count transferred to caller)}} 
expected-note{{Object leaked: object allocated and stored into 'object' and 
returned from method 'getViolation' is potentially leaked when using garbage 
collection.  Callers of this method do not expect a returned object with a +1 
retain count since they expect the object to be managed by the garbage 
collector}}
 }
 
 - (id)copyViolation {
-  id object = (id) CFCreateSomething(); // expected-note{{Call to function 
'CFCreateSomething' returns a Core Foundation object with a +1 retain count.  
Core Foundation objects are not automatically garbage collected}}
+  id object = (id) CFCreateSomething(); // expected-note{{Call to function 
'CFCreateSomething' returns a Core Foundation object of type CFTypeRef with a 
+1 retain count.  Core Foundation objects are not automatically garbage 
collected}}
   return object; // expected-warning{{leak}} expected-note{{Object returned to 
caller as an owning reference (single retain count transferred to caller)}} 
expected-note{{Object leaked: object allocated and stored into 'object' and 
returned from method 'copyViolation' is potentially leaked when using garbage 
collection.  Callers of this method do not expect a returned object with a +1 
retain count since they expect the object to be managed by the garbage 
collector}}
 }
 @end
@@ -137,9 +137,9 @@ void retainReleaseIgnored () {
 // CHECK-NEXT:      </array>
 // CHECK-NEXT:      <key>depth</key><integer>0</integer>
 // CHECK-NEXT:      <key>extended_message</key>
-// CHECK-NEXT:      <string>Call to function &apos;CFCreateSomething&apos; 
returns a Core Foundation object with a +1 retain count.  Core Foundation 
objects are not automatically garbage collected</string>
+// CHECK-NEXT:      <string>Call to function &apos;CFCreateSomething&apos; 
returns a Core Foundation object of type CFTypeRef with a +1 retain count.  
Core Foundation objects are not automatically garbage collected</string>
 // CHECK-NEXT:      <key>message</key>
-// CHECK-NEXT:      <string>Call to function &apos;CFCreateSomething&apos; 
returns a Core Foundation object with a +1 retain count.  Core Foundation 
objects are not automatically garbage collected</string>
+// CHECK-NEXT:      <string>Call to function &apos;CFCreateSomething&apos; 
returns a Core Foundation object of type CFTypeRef with a +1 retain count.  
Core Foundation objects are not automatically garbage collected</string>
 // CHECK-NEXT:     </dict>
 // CHECK-NEXT:     <dict>
 // CHECK-NEXT:      <key>kind</key><string>control</string>
@@ -283,9 +283,9 @@ void retainReleaseIgnored () {
 // CHECK-NEXT:      </array>
 // CHECK-NEXT:      <key>depth</key><integer>0</integer>
 // CHECK-NEXT:      <key>extended_message</key>
-// CHECK-NEXT:      <string>Call to function &apos;CFCreateSomething&apos; 
returns a Core Foundation object with a +1 retain count.  Core Foundation 
objects are not automatically garbage collected</string>
+// CHECK-NEXT:      <string>Call to function &apos;CFCreateSomething&apos; 
returns a Core Foundation object of type CFTypeRef with a +1 retain count.  
Core Foundation objects are not automatically garbage collected</string>
 // CHECK-NEXT:      <key>message</key>
-// CHECK-NEXT:      <string>Call to function &apos;CFCreateSomething&apos; 
returns a Core Foundation object with a +1 retain count.  Core Foundation 
objects are not automatically garbage collected</string>
+// CHECK-NEXT:      <string>Call to function &apos;CFCreateSomething&apos; 
returns a Core Foundation object of type CFTypeRef with a +1 retain count.  
Core Foundation objects are not automatically garbage collected</string>
 // CHECK-NEXT:     </dict>
 // CHECK-NEXT:     <dict>
 // CHECK-NEXT:      <key>kind</key><string>control</string>
@@ -729,9 +729,9 @@ void retainReleaseIgnored () {
 // CHECK-NEXT:      </array>
 // CHECK-NEXT:      <key>depth</key><integer>0</integer>
 // CHECK-NEXT:      <key>extended_message</key>
-// CHECK-NEXT:      <string>Method returns an Objective-C object with a +0 
retain count</string>
+// CHECK-NEXT:      <string>Method returns an instance of NSObject with a +0 
retain count</string>
 // CHECK-NEXT:      <key>message</key>
-// CHECK-NEXT:      <string>Method returns an Objective-C object with a +0 
retain count</string>
+// CHECK-NEXT:      <string>Method returns an instance of NSObject with a +0 
retain count</string>
 // CHECK-NEXT:     </dict>
 // CHECK-NEXT:     <dict>
 // CHECK-NEXT:      <key>kind</key><string>control</string>
@@ -1100,9 +1100,9 @@ void retainReleaseIgnored () {
 // CHECK-NEXT:      </array>
 // CHECK-NEXT:      <key>depth</key><integer>0</integer>
 // CHECK-NEXT:      <key>extended_message</key>
-// CHECK-NEXT:      <string>Call to function &apos;CFCreateSomething&apos; 
returns a Core Foundation object with a +1 retain count.  Core Foundation 
objects are not automatically garbage collected</string>
+// CHECK-NEXT:      <string>Call to function &apos;CFCreateSomething&apos; 
returns a Core Foundation object of type CFTypeRef with a +1 retain count.  
Core Foundation objects are not automatically garbage collected</string>
 // CHECK-NEXT:      <key>message</key>
-// CHECK-NEXT:      <string>Call to function &apos;CFCreateSomething&apos; 
returns a Core Foundation object with a +1 retain count.  Core Foundation 
objects are not automatically garbage collected</string>
+// CHECK-NEXT:      <string>Call to function &apos;CFCreateSomething&apos; 
returns a Core Foundation object of type CFTypeRef with a +1 retain count.  
Core Foundation objects are not automatically garbage collected</string>
 // CHECK-NEXT:     </dict>
 // CHECK-NEXT:     <dict>
 // CHECK-NEXT:      <key>kind</key><string>control</string>
@@ -1287,9 +1287,9 @@ void retainReleaseIgnored () {
 // CHECK-NEXT:      </array>
 // CHECK-NEXT:      <key>depth</key><integer>0</integer>
 // CHECK-NEXT:      <key>extended_message</key>
-// CHECK-NEXT:      <string>Call to function &apos;CFCreateSomething&apos; 
returns a Core Foundation object with a +1 retain count.  Core Foundation 
objects are not automatically garbage collected</string>
+// CHECK-NEXT:      <string>Call to function &apos;CFCreateSomething&apos; 
returns a Core Foundation object of type CFTypeRef with a +1 retain count.  
Core Foundation objects are not automatically garbage collected</string>
 // CHECK-NEXT:      <key>message</key>
-// CHECK-NEXT:      <string>Call to function &apos;CFCreateSomething&apos; 
returns a Core Foundation object with a +1 retain count.  Core Foundation 
objects are not automatically garbage collected</string>
+// CHECK-NEXT:      <string>Call to function &apos;CFCreateSomething&apos; 
returns a Core Foundation object of type CFTypeRef with a +1 retain count.  
Core Foundation objects are not automatically garbage collected</string>
 // CHECK-NEXT:     </dict>
 // CHECK-NEXT:     <dict>
 // CHECK-NEXT:      <key>kind</key><string>control</string>

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=289883&r1=289882&r2=289883&view=diff
==============================================================================
--- cfe/trunk/test/Analysis/retain-release-path-notes.m (original)
+++ cfe/trunk/test/Analysis/retain-release-path-notes.m Thu Dec 15 16:55:03 2016
@@ -44,12 +44,12 @@ CFTypeRef CFGetSomething();
 
 
 void creationViaAlloc () {
-  id leaked = [[NSObject alloc] init]; // expected-note{{Method returns an 
Objective-C object with a +1 retain count}}
+  id leaked = [[NSObject alloc] init]; // expected-note{{Method returns an 
instance of NSObject 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}}
 }
 
 void creationViaCFCreate () {
-  CFTypeRef leaked = CFCreateSomething(); // expected-note{{Call to function 
'CFCreateSomething' returns a Core Foundation object 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,25 +68,25 @@ void acquisitionViaProperty (Foo *foo) {
 }
 
 void acquisitionViaCFFunction () {
-  CFTypeRef leaked = CFGetSomething(); // expected-note{{Call to function 
'CFGetSomething' returns a Core Foundation object 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}}
 }
 
 void explicitDealloc () {
-  id object = [[NSObject alloc] init]; // expected-note{{Method returns an 
Objective-C object with a +1 retain count}}
+  id object = [[NSObject alloc] init]; // expected-note{{Method returns an 
instance of NSObject with a +1 retain count}}
   [object dealloc]; // expected-note{{Object released by directly sending the 
'-dealloc' message}}
   [object class]; // expected-warning{{Reference-counted object is used after 
it is released}} // expected-note{{Reference-counted object is used after it is 
released}}
 }
 
 void implicitDealloc () {
-  id object = [[NSObject alloc] init]; // expected-note{{Method returns an 
Objective-C object with a +1 retain count}}
+  id object = [[NSObject alloc] init]; // expected-note{{Method returns an 
instance of NSObject with a +1 retain count}}
   [object release]; // expected-note{{Object released}}
   [object class]; // expected-warning{{Reference-counted object is used after 
it is released}} // expected-note{{Reference-counted object is used after it is 
released}}
 }
 
 void overAutorelease () {
-  id object = [[NSObject alloc] init]; // expected-note{{Method returns an 
Objective-C object with a +1 retain count}}
+  id object = [[NSObject alloc] init]; // expected-note{{Method returns an 
instance of NSObject with a +1 retain count}}
   [object autorelease]; // expected-note{{Object autoreleased}}
   [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 +1 retain 
count}} 
@@ -99,19 +99,19 @@ void autoreleaseUnowned (Foo *foo) {
 }
 
 void makeCollectableIgnored () {
-  CFTypeRef leaked = CFCreateSomething(); // expected-note{{Call to function 
'CFCreateSomething' returns a Core Foundation object 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); // expected-note{{When GC is not enabled a call 
to 'CFMakeCollectable' has no effect on its argument}}
   NSMakeCollectable(leaked); // expected-note{{When GC is not enabled a call 
to 'NSMakeCollectable' has no effect on its argument}}
   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 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 
returned to caller with a +0 retain count}} 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 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 returned to 
caller as an owning reference (single retain count transferred to caller)}} 
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}}
 }
 
@@ -132,12 +132,12 @@ CFTypeRef CFGetRuleViolation () {
 }
 
 - (id)getViolation {
-  id result = [[Foo alloc] init]; // expected-note{{Method returns an 
Objective-C object with a +1 retain count}}
+  id result = [[Foo alloc] init]; // expected-note{{Method returns an instance 
of Foo with a +1 retain count}}
   return result; // expected-warning{{leak}} expected-note{{Object returned to 
caller as an owning reference (single retain count transferred to caller)}} 
expected-note{{Object leaked: object allocated and stored into 'result' is 
returned from a method whose name ('getViolation') does not start with 'copy', 
'mutableCopy', 'alloc' or 'new'.  This violates the naming convention rules 
given in the Memory Management Guide for Cocoa}}
 }
 
 - (id)copyAutorelease {
-  id result = [[Foo alloc] init]; // expected-note{{Method returns an 
Objective-C object with a +1 retain count}}
+  id result = [[Foo alloc] init]; // expected-note{{Method returns an instance 
of Foo with a +1 retain count}}
   [result autorelease]; // expected-note{{Object autoreleased}}
   return result; // 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}}
 }
@@ -212,7 +212,7 @@ static int Cond;
 }
 
 -(id)initY {
-  self = [super init]; //expected-note {{Method returns an Objective-C object 
with a +1 retain count}}
+  self = [super init]; //expected-note {{Method returns an instance of MyObj 
with a +1 retain count}}
   return self;
 }
 
@@ -224,7 +224,7 @@ static int Cond;
 +(void)test {
   // initX is inlined since we explicitely mark it as interesting
   id x = [[MyObj alloc] initX]; // expected-warning {{Potential leak of an 
object}}
-                                // expected-note@-1 {{Method returns an 
Objective-C object with a +1 retain count}}
+                                // expected-note@-1 {{Method returns an 
instance of MyObj with a +1 retain count}}
                                 // expected-note@-2 {{Calling 'initX'}}
                                 // expected-note@-3 {{Returning from 'initX'}}
                                 // expected-note@-4 {{Object leaked: allocated 
object is not referenced later in this execution path and has a retain count of 
+1}}
@@ -244,20 +244,20 @@ static int Cond;
 
 
 void CFOverAutorelease() {
-  CFTypeRef object = CFCreateSomething(); // expected-note{{Call to function 
'CFCreateSomething' returns a Core Foundation object 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 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 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}}
@@ -393,9 +393,9 @@ void CFAutoreleaseUnownedMixed() {
 // CHECK-NEXT:      </array>
 // CHECK-NEXT:      <key>depth</key><integer>0</integer>
 // CHECK-NEXT:      <key>extended_message</key>
-// CHECK-NEXT:      <string>Method returns an Objective-C object with a +1 
retain count</string>
+// CHECK-NEXT:      <string>Method returns an instance of NSObject with a +1 
retain count</string>
 // CHECK-NEXT:      <key>message</key>
-// CHECK-NEXT:      <string>Method returns an Objective-C object with a +1 
retain count</string>
+// CHECK-NEXT:      <string>Method returns an instance of NSObject with a +1 
retain count</string>
 // CHECK-NEXT:     </dict>
 // CHECK-NEXT:     <dict>
 // CHECK-NEXT:      <key>kind</key><string>control</string>
@@ -539,9 +539,9 @@ void CFAutoreleaseUnownedMixed() {
 // CHECK-NEXT:      </array>
 // CHECK-NEXT:      <key>depth</key><integer>0</integer>
 // CHECK-NEXT:      <key>extended_message</key>
-// CHECK-NEXT:      <string>Call to function &apos;CFCreateSomething&apos; 
returns a Core Foundation object with a +1 retain count</string>
+// CHECK-NEXT:      <string>Call to function &apos;CFCreateSomething&apos; 
returns a Core Foundation object of type CFTypeRef with a +1 retain 
count</string>
 // CHECK-NEXT:      <key>message</key>
-// CHECK-NEXT:      <string>Call to function &apos;CFCreateSomething&apos; 
returns a Core Foundation object with a +1 retain count</string>
+// CHECK-NEXT:      <string>Call to function &apos;CFCreateSomething&apos; 
returns a Core Foundation object of type CFTypeRef with a +1 retain 
count</string>
 // CHECK-NEXT:     </dict>
 // CHECK-NEXT:     <dict>
 // CHECK-NEXT:      <key>kind</key><string>control</string>
@@ -1277,9 +1277,9 @@ void CFAutoreleaseUnownedMixed() {
 // CHECK-NEXT:      </array>
 // CHECK-NEXT:      <key>depth</key><integer>0</integer>
 // CHECK-NEXT:      <key>extended_message</key>
-// CHECK-NEXT:      <string>Call to function &apos;CFGetSomething&apos; 
returns a Core Foundation object with a +0 retain count</string>
+// CHECK-NEXT:      <string>Call to function &apos;CFGetSomething&apos; 
returns a Core Foundation object of type CFTypeRef with a +0 retain 
count</string>
 // CHECK-NEXT:      <key>message</key>
-// CHECK-NEXT:      <string>Call to function &apos;CFGetSomething&apos; 
returns a Core Foundation object with a +0 retain count</string>
+// CHECK-NEXT:      <string>Call to function &apos;CFGetSomething&apos; 
returns a Core Foundation object of type CFTypeRef with a +0 retain 
count</string>
 // CHECK-NEXT:     </dict>
 // CHECK-NEXT:     <dict>
 // CHECK-NEXT:      <key>kind</key><string>control</string>
@@ -1498,9 +1498,9 @@ void CFAutoreleaseUnownedMixed() {
 // CHECK-NEXT:      </array>
 // CHECK-NEXT:      <key>depth</key><integer>0</integer>
 // CHECK-NEXT:      <key>extended_message</key>
-// CHECK-NEXT:      <string>Method returns an Objective-C object with a +1 
retain count</string>
+// CHECK-NEXT:      <string>Method returns an instance of NSObject with a +1 
retain count</string>
 // CHECK-NEXT:      <key>message</key>
-// CHECK-NEXT:      <string>Method returns an Objective-C object with a +1 
retain count</string>
+// CHECK-NEXT:      <string>Method returns an instance of NSObject with a +1 
retain count</string>
 // CHECK-NEXT:     </dict>
 // CHECK-NEXT:     <dict>
 // CHECK-NEXT:      <key>kind</key><string>control</string>
@@ -1719,9 +1719,9 @@ void CFAutoreleaseUnownedMixed() {
 // CHECK-NEXT:      </array>
 // CHECK-NEXT:      <key>depth</key><integer>0</integer>
 // CHECK-NEXT:      <key>extended_message</key>
-// CHECK-NEXT:      <string>Method returns an Objective-C object with a +1 
retain count</string>
+// CHECK-NEXT:      <string>Method returns an instance of NSObject with a +1 
retain count</string>
 // CHECK-NEXT:      <key>message</key>
-// CHECK-NEXT:      <string>Method returns an Objective-C object with a +1 
retain count</string>
+// CHECK-NEXT:      <string>Method returns an instance of NSObject with a +1 
retain count</string>
 // CHECK-NEXT:     </dict>
 // CHECK-NEXT:     <dict>
 // CHECK-NEXT:      <key>kind</key><string>control</string>
@@ -1940,9 +1940,9 @@ void CFAutoreleaseUnownedMixed() {
 // CHECK-NEXT:      </array>
 // CHECK-NEXT:      <key>depth</key><integer>0</integer>
 // CHECK-NEXT:      <key>extended_message</key>
-// CHECK-NEXT:      <string>Method returns an Objective-C object with a +1 
retain count</string>
+// CHECK-NEXT:      <string>Method returns an instance of NSObject with a +1 
retain count</string>
 // CHECK-NEXT:      <key>message</key>
-// CHECK-NEXT:      <string>Method returns an Objective-C object with a +1 
retain count</string>
+// CHECK-NEXT:      <string>Method returns an instance of NSObject with a +1 
retain count</string>
 // CHECK-NEXT:     </dict>
 // CHECK-NEXT:     <dict>
 // CHECK-NEXT:      <key>kind</key><string>control</string>
@@ -2457,9 +2457,9 @@ void CFAutoreleaseUnownedMixed() {
 // CHECK-NEXT:      </array>
 // CHECK-NEXT:      <key>depth</key><integer>0</integer>
 // CHECK-NEXT:      <key>extended_message</key>
-// CHECK-NEXT:      <string>Call to function &apos;CFCreateSomething&apos; 
returns a Core Foundation object with a +1 retain count</string>
+// CHECK-NEXT:      <string>Call to function &apos;CFCreateSomething&apos; 
returns a Core Foundation object of type CFTypeRef with a +1 retain 
count</string>
 // CHECK-NEXT:      <key>message</key>
-// CHECK-NEXT:      <string>Call to function &apos;CFCreateSomething&apos; 
returns a Core Foundation object with a +1 retain count</string>
+// CHECK-NEXT:      <string>Call to function &apos;CFCreateSomething&apos; 
returns a Core Foundation object of type CFTypeRef with a +1 retain 
count</string>
 // CHECK-NEXT:     </dict>
 // CHECK-NEXT:     <dict>
 // CHECK-NEXT:      <key>kind</key><string>control</string>
@@ -2753,9 +2753,9 @@ void CFAutoreleaseUnownedMixed() {
 // CHECK-NEXT:      </array>
 // CHECK-NEXT:      <key>depth</key><integer>0</integer>
 // CHECK-NEXT:      <key>extended_message</key>
-// CHECK-NEXT:      <string>Call to function &apos;CFGetSomething&apos; 
returns a Core Foundation object with a +0 retain count</string>
+// CHECK-NEXT:      <string>Call to function &apos;CFGetSomething&apos; 
returns a Core Foundation object of type CFTypeRef with a +0 retain 
count</string>
 // CHECK-NEXT:      <key>message</key>
-// CHECK-NEXT:      <string>Call to function &apos;CFGetSomething&apos; 
returns a Core Foundation object with a +0 retain count</string>
+// CHECK-NEXT:      <string>Call to function &apos;CFGetSomething&apos; 
returns a Core Foundation object of type CFTypeRef with a +0 retain 
count</string>
 // CHECK-NEXT:     </dict>
 // CHECK-NEXT:     <dict>
 // CHECK-NEXT:      <key>kind</key><string>control</string>
@@ -2940,9 +2940,9 @@ void CFAutoreleaseUnownedMixed() {
 // CHECK-NEXT:      </array>
 // CHECK-NEXT:      <key>depth</key><integer>0</integer>
 // CHECK-NEXT:      <key>extended_message</key>
-// CHECK-NEXT:      <string>Call to function &apos;CFCreateSomething&apos; 
returns a Core Foundation object with a +1 retain count</string>
+// CHECK-NEXT:      <string>Call to function &apos;CFCreateSomething&apos; 
returns a Core Foundation object of type CFTypeRef with a +1 retain 
count</string>
 // CHECK-NEXT:      <key>message</key>
-// CHECK-NEXT:      <string>Call to function &apos;CFCreateSomething&apos; 
returns a Core Foundation object with a +1 retain count</string>
+// CHECK-NEXT:      <string>Call to function &apos;CFCreateSomething&apos; 
returns a Core Foundation object of type CFTypeRef with a +1 retain 
count</string>
 // CHECK-NEXT:     </dict>
 // CHECK-NEXT:     <dict>
 // CHECK-NEXT:      <key>kind</key><string>control</string>
@@ -3688,9 +3688,9 @@ void CFAutoreleaseUnownedMixed() {
 // CHECK-NEXT:      </array>
 // CHECK-NEXT:      <key>depth</key><integer>0</integer>
 // CHECK-NEXT:      <key>extended_message</key>
-// CHECK-NEXT:      <string>Method returns an Objective-C object with a +1 
retain count</string>
+// CHECK-NEXT:      <string>Method returns an instance of Foo with a +1 retain 
count</string>
 // CHECK-NEXT:      <key>message</key>
-// CHECK-NEXT:      <string>Method returns an Objective-C object with a +1 
retain count</string>
+// CHECK-NEXT:      <string>Method returns an instance of Foo with a +1 retain 
count</string>
 // CHECK-NEXT:     </dict>
 // CHECK-NEXT:     <dict>
 // CHECK-NEXT:      <key>kind</key><string>control</string>
@@ -3875,9 +3875,9 @@ void CFAutoreleaseUnownedMixed() {
 // CHECK-NEXT:      </array>
 // CHECK-NEXT:      <key>depth</key><integer>0</integer>
 // CHECK-NEXT:      <key>extended_message</key>
-// CHECK-NEXT:      <string>Method returns an Objective-C object with a +1 
retain count</string>
+// CHECK-NEXT:      <string>Method returns an instance of Foo with a +1 retain 
count</string>
 // CHECK-NEXT:      <key>message</key>
-// CHECK-NEXT:      <string>Method returns an Objective-C object with a +1 
retain count</string>
+// CHECK-NEXT:      <string>Method returns an instance of Foo with a +1 retain 
count</string>
 // CHECK-NEXT:     </dict>
 // CHECK-NEXT:     <dict>
 // CHECK-NEXT:      <key>kind</key><string>control</string>
@@ -4826,9 +4826,9 @@ void CFAutoreleaseUnownedMixed() {
 // CHECK-NEXT:      </array>
 // CHECK-NEXT:      <key>depth</key><integer>0</integer>
 // CHECK-NEXT:      <key>extended_message</key>
-// CHECK-NEXT:      <string>Method returns an Objective-C object with a +1 
retain count</string>
+// CHECK-NEXT:      <string>Method returns an instance of MyObj with a +1 
retain count</string>
 // CHECK-NEXT:      <key>message</key>
-// CHECK-NEXT:      <string>Method returns an Objective-C object with a +1 
retain count</string>
+// CHECK-NEXT:      <string>Method returns an instance of MyObj with a +1 
retain count</string>
 // CHECK-NEXT:     </dict>
 // CHECK-NEXT:     <dict>
 // CHECK-NEXT:      <key>kind</key><string>control</string>
@@ -5354,9 +5354,9 @@ void CFAutoreleaseUnownedMixed() {
 // CHECK-NEXT:      </array>
 // CHECK-NEXT:      <key>depth</key><integer>1</integer>
 // CHECK-NEXT:      <key>extended_message</key>
-// CHECK-NEXT:      <string>Method returns an Objective-C object with a +1 
retain count</string>
+// CHECK-NEXT:      <string>Method returns an instance of MyObj with a +1 
retain count</string>
 // CHECK-NEXT:      <key>message</key>
-// CHECK-NEXT:      <string>Method returns an Objective-C object with a +1 
retain count</string>
+// CHECK-NEXT:      <string>Method returns an instance of MyObj with a +1 
retain count</string>
 // CHECK-NEXT:     </dict>
 // CHECK-NEXT:     <dict>
 // CHECK-NEXT:      <key>kind</key><string>event</string>
@@ -5563,9 +5563,9 @@ void CFAutoreleaseUnownedMixed() {
 // CHECK-NEXT:      </array>
 // CHECK-NEXT:      <key>depth</key><integer>0</integer>
 // CHECK-NEXT:      <key>extended_message</key>
-// CHECK-NEXT:      <string>Call to function &apos;CFCreateSomething&apos; 
returns a Core Foundation object with a +1 retain count</string>
+// CHECK-NEXT:      <string>Call to function &apos;CFCreateSomething&apos; 
returns a Core Foundation object of type CFTypeRef with a +1 retain 
count</string>
 // CHECK-NEXT:      <key>message</key>
-// CHECK-NEXT:      <string>Call to function &apos;CFCreateSomething&apos; 
returns a Core Foundation object with a +1 retain count</string>
+// CHECK-NEXT:      <string>Call to function &apos;CFCreateSomething&apos; 
returns a Core Foundation object of type CFTypeRef with a +1 retain 
count</string>
 // CHECK-NEXT:     </dict>
 // CHECK-NEXT:     <dict>
 // CHECK-NEXT:      <key>kind</key><string>control</string>
@@ -5859,9 +5859,9 @@ void CFAutoreleaseUnownedMixed() {
 // CHECK-NEXT:      </array>
 // CHECK-NEXT:      <key>depth</key><integer>0</integer>
 // CHECK-NEXT:      <key>extended_message</key>
-// CHECK-NEXT:      <string>Call to function &apos;CFGetSomething&apos; 
returns a Core Foundation object with a +0 retain count</string>
+// CHECK-NEXT:      <string>Call to function &apos;CFGetSomething&apos; 
returns a Core Foundation object of type CFTypeRef with a +0 retain 
count</string>
 // CHECK-NEXT:      <key>message</key>
-// CHECK-NEXT:      <string>Call to function &apos;CFGetSomething&apos; 
returns a Core Foundation object with a +0 retain count</string>
+// CHECK-NEXT:      <string>Call to function &apos;CFGetSomething&apos; 
returns a Core Foundation object of type CFTypeRef with a +0 retain 
count</string>
 // CHECK-NEXT:     </dict>
 // CHECK-NEXT:     <dict>
 // CHECK-NEXT:      <key>kind</key><string>control</string>
@@ -6080,9 +6080,9 @@ void CFAutoreleaseUnownedMixed() {
 // CHECK-NEXT:      </array>
 // CHECK-NEXT:      <key>depth</key><integer>0</integer>
 // CHECK-NEXT:      <key>extended_message</key>
-// CHECK-NEXT:      <string>Call to function &apos;CFGetSomething&apos; 
returns a Core Foundation object with a +0 retain count</string>
+// CHECK-NEXT:      <string>Call to function &apos;CFGetSomething&apos; 
returns a Core Foundation object of type CFTypeRef with a +0 retain 
count</string>
 // CHECK-NEXT:      <key>message</key>
-// CHECK-NEXT:      <string>Call to function &apos;CFGetSomething&apos; 
returns a Core Foundation object with a +0 retain count</string>
+// CHECK-NEXT:      <string>Call to function &apos;CFGetSomething&apos; 
returns a Core Foundation object of type CFTypeRef with a +0 retain 
count</string>
 // CHECK-NEXT:     </dict>
 // CHECK-NEXT:     <dict>
 // CHECK-NEXT:      <key>kind</key><string>control</string>


_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to