[cfe-commits] r161194 - /cfe/trunk/test/SemaObjC/arc-dict-bridged-cast.m

Jordan Rose jordan_rose at apple.com
Thu Aug 2 14:23:57 PDT 2012


How about the other case? Can we avoid offering fixits for transferring globals in and out of ARC? I wouldn't stop a developer from writing it deliberately, but it seems very unlikely to be the correct solution in a case where they just forgot the cast.


On Aug 2, 2012, at 11:38 , Fariborz Jahanian <fjahanian at apple.com> wrote:

> Author: fjahanian
> Date: Thu Aug  2 13:38:41 2012
> New Revision: 161194
> 
> URL: http://llvm.org/viewvc/llvm-project?rev=161194&view=rev
> Log:
> objc-arc: Modify test for more prcecise fixit.
> // rdar://11913153
> 
> Modified:
>    cfe/trunk/test/SemaObjC/arc-dict-bridged-cast.m
> 
> Modified: cfe/trunk/test/SemaObjC/arc-dict-bridged-cast.m
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/SemaObjC/arc-dict-bridged-cast.m?rev=161194&r1=161193&r2=161194&view=diff
> ==============================================================================
> --- cfe/trunk/test/SemaObjC/arc-dict-bridged-cast.m (original)
> +++ cfe/trunk/test/SemaObjC/arc-dict-bridged-cast.m Thu Aug  2 13:38:41 2012
> @@ -15,8 +15,10 @@
> - (id)objectForKeyedSubscript:(id<NSCopying>)key;
> @end
> 
> +#pragma clang arc_cf_code_audited begin
> extern
> CFMutableStringRef CFStringCreateMutable(CFAllocatorRef alloc, CFIndex maxLength);
> +#pragma clang arc_cf_code_audited end
> 
> typedef const void * CFTypeRef;
> 
> @@ -32,16 +34,13 @@
>                                         // expected-note {{use CFBridgingRelease call to transfer ownership of a +1 'CFStringRef' (aka 'const struct __CFString *') into ARC}}
>   return infoDictionary[CFStringCreateMutable(((void*)0), 100)]; // expected-error {{indexing expression is invalid because subscript type 'CFMutableStringRef' (aka 'struct __CFString *') is not an integral or Objective-C pointer type}} \
>                                        // expected-error {{implicit conversion of C pointer type 'CFMutableStringRef' (aka 'struct __CFString *') to Objective-C pointer type '__strong id<NSCopying>' requires a bridged cast}} \
> -                                        // expected-note {{use __bridge to convert directly (no change in ownership)}} \
>                                         // expected-note {{use CFBridgingRelease call to transfer ownership of a +1 'CFMutableStringRef' (aka 'struct __CFString *') into ARC}}
> 					
> }
> 
> -// CHECK: fix-it:"{{.*}}":{29:18-29:18}:"(__bridge __strong id<NSCopying>)("
> -// CHECK: fix-it:"{{.*}}":{29:34-29:34}:")"
> -// CHECK: fix-it:"{{.*}}":{29:18-29:18}:"CFBridgingRelease("
> -// CHECK: fix-it:"{{.*}}":{29:34-29:34}:")"
> -// CHECK: fix-it:"{{.*}}":{33:25-33:25}:"(__bridge __strong id<NSCopying>)("
> -// CHECK: fix-it:"{{.*}}":{33:63-33:63}:")"
> -// CHECK: fix-it:"{{.*}}":{33:25-33:25}:"CFBridgingRelease("
> -// CHECK: fix-it:"{{.*}}":{33:63-33:63}:")"
> +// CHECK: fix-it:"{{.*}}":{31:18-31:18}:"(__bridge __strong id<NSCopying>)("
> +// CHECK: fix-it:"{{.*}}":{31:34-31:34}:")"
> +// CHECK: fix-it:"{{.*}}":{31:18-31:18}:"CFBridgingRelease("
> +// CHECK: fix-it:"{{.*}}":{31:34-31:34}:")"
> +// CHECK: fix-it:"{{.*}}":{35:25-35:25}:"CFBridgingRelease("
> +// CHECK: fix-it:"{{.*}}":{35:63-35:63}:")"
> 
> 
> _______________________________________________
> cfe-commits mailing list
> cfe-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits




More information about the cfe-commits mailing list