diff options
author | Fariborz Jahanian <fjahanian@apple.com> | 2012-11-28 23:12:17 +0000 |
---|---|---|
committer | Fariborz Jahanian <fjahanian@apple.com> | 2012-11-28 23:12:17 +0000 |
commit | 998f0a336012e25f72acdd53f5a6b1cf34904e7a (patch) | |
tree | 44445d6cf7591273ebfa21531e6243a424a18206 /clang/lib/Rewrite/Frontend/RewriteModernObjC.cpp | |
parent | a118c6a8c0e9a6fa107460682d4ded421631941a (diff) | |
download | bcm5719-llvm-998f0a336012e25f72acdd53f5a6b1cf34904e7a.tar.gz bcm5719-llvm-998f0a336012e25f72acdd53f5a6b1cf34904e7a.zip |
objective-C blocks: Make sure that identical logic is used
in deciding a copy/dispose field is needed in a byref structure
and when generating the copy/dispose helpers. In certain
cases, these fields were being added but no copy/dispose was
being generated. This was uncovered in ARC, but not in MRR.
// rdar://12759433
llvm-svn: 168825
Diffstat (limited to 'clang/lib/Rewrite/Frontend/RewriteModernObjC.cpp')
-rw-r--r-- | clang/lib/Rewrite/Frontend/RewriteModernObjC.cpp | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/clang/lib/Rewrite/Frontend/RewriteModernObjC.cpp b/clang/lib/Rewrite/Frontend/RewriteModernObjC.cpp index 4b56b3720a3..19acb94925a 100644 --- a/clang/lib/Rewrite/Frontend/RewriteModernObjC.cpp +++ b/clang/lib/Rewrite/Frontend/RewriteModernObjC.cpp @@ -5053,7 +5053,7 @@ void RewriteModernObjC::RewriteByRefVar(VarDecl *ND, bool firstDecl, // Add void *__Block_byref_id_object_copy; // void *__Block_byref_id_object_dispose; if needed. QualType Ty = ND->getType(); - bool HasCopyAndDispose = Context->BlockRequiresCopying(Ty); + bool HasCopyAndDispose = Context->BlockRequiresCopying(Ty, ND); if (HasCopyAndDispose) { ByrefType += " void (*__Block_byref_id_object_copy)(void*, void*);\n"; ByrefType += " void (*__Block_byref_id_object_dispose)(void*);\n"; |