reference, declaration → definition definition → references, declarations, derived classes, virtual overrides reference to multiple definitions → definitions unreferenced |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | // RUN: %clang_cc1 -triple x86_64-apple-darwin11 -emit-llvm -fobjc-arc -o - %s | FileCheck %s // rdar://9744349 typedef const struct __CFString * CFStringRef; @interface I @property CFStringRef P; - (CFStringRef) CFMeth __attribute__((cf_returns_retained)); - (CFStringRef) newSomething; - (CFStringRef) P __attribute__((cf_returns_retained)); @end @implementation I @synthesize P; - (id) Meth { I* p1 = (id)[p1 P]; id p2 = (id)[p1 CFMeth]; id p3 = (id)[p1 newSomething]; return (id) p1.P; } - (CFStringRef) CFMeth { return 0; } - (CFStringRef) newSomething { return 0; } - (CFStringRef) P { return 0; } - (void) setP : (CFStringRef)arg {} @end // rdar://9544832 CFStringRef SomeOtherFunc() __attribute__((cf_returns_retained)); id MMM() { id obj = (id)((CFStringRef) __builtin___CFStringMakeConstantString ("" "Some CF String" "")); return 0; } // CHECK-NOT: call i8* @llvm.objc.retainAutoreleasedReturnValue |