http://llvm.org/bugs/show_bug.cgi?id=19009
Split out from http://llvm.org/bugs/show_bug.cgi?id=15649 In some cases, ARC implicit writeback can result in loss of what the user likely intended. For example: int main(int argc, char *argv[]) { __block id value = @"initial value"; void (^block)(id *outValue) = ^(id *outValue){ value = @"hello"; }; block(&value); NSLog(@"value = %@", value); return 0; } With ARC, this reports: 2013-04-24 13:55:35.814 block-local-address[28013:707] value = initial value but with MRR: 2013-04-24 13:57:26.058 block-local-address[28046:707] value = hello Attached is a patch vs trunk r202532 that adds -Warc-implicit-writeback and test cases for the ObjC and ObjC++ compilers (which each seem to have their own support for writeback).
warn-arc-implicit-writeback.patch
Description: Binary data
_______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
