diff options
author | Argyrios Kyrtzidis <akyrtzi@gmail.com> | 2011-07-12 22:05:17 +0000 |
---|---|---|
committer | Argyrios Kyrtzidis <akyrtzi@gmail.com> | 2011-07-12 22:05:17 +0000 |
commit | 86625b5650cdddc38c0b4cc1eb7fb460478c9d11 (patch) | |
tree | 0163c4ca4fde1b4295691073258bb29cadfe8e35 /lib/ARCMigrate/TransProperties.cpp | |
parent | c286f3835eb6001c61664cef5d610dfaf80a6e9b (diff) |
[arcmt] Before applying '__weak' check whether the objc class is annotated with objc_arc_weak_reference_unavailable
or is in a list of classes not supporting 'weak'.
rdar://9489367.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135002 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/ARCMigrate/TransProperties.cpp')
-rw-r--r-- | lib/ARCMigrate/TransProperties.cpp | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/lib/ARCMigrate/TransProperties.cpp b/lib/ARCMigrate/TransProperties.cpp index 0efc4c0fad..82ef717f31 100644 --- a/lib/ARCMigrate/TransProperties.cpp +++ b/lib/ARCMigrate/TransProperties.cpp @@ -112,7 +112,7 @@ public: } void applyWeak(PropData &prop) { - assert(Pass.Ctx.getLangOptions().ObjCRuntimeHasWeak); + assert(canApplyWeak(Pass.Ctx, prop.IvarD->getType())); Transaction Trans(Pass.TA); Pass.TA.insert(prop.IvarD->getLocation(), "__weak "); @@ -157,7 +157,7 @@ public: // There is a "error: existing ivar for assign property must be // __unsafe_unretained"; fix it. - if (!Pass.Ctx.getLangOptions().ObjCRuntimeHasWeak) { + if (!canApplyWeak(Pass.Ctx, ivarD->getType())) { // We will just add __unsafe_unretained to the ivar. Transaction Trans(Pass.TA); Pass.TA.insert(ivarD->getLocation(), "__unsafe_unretained "); |