diff options
Diffstat (limited to 'lib/ARCMigrate/TransProperties.cpp')
-rw-r--r-- | lib/ARCMigrate/TransProperties.cpp | 32 |
1 files changed, 20 insertions, 12 deletions
diff --git a/lib/ARCMigrate/TransProperties.cpp b/lib/ARCMigrate/TransProperties.cpp index fdd6e88..b6ddc43 100644 --- a/lib/ARCMigrate/TransProperties.cpp +++ b/lib/ARCMigrate/TransProperties.cpp @@ -1,4 +1,4 @@ -//===--- TransProperties.cpp - Tranformations to ARC mode -----------------===// +//===--- TransProperties.cpp - Transformations to ARC mode ----------------===// // // The LLVM Compiler Infrastructure // @@ -32,9 +32,9 @@ #include "Transforms.h" #include "Internals.h" -#include "clang/Sema/SemaDiagnostic.h" #include "clang/Basic/SourceManager.h" #include "clang/Lex/Lexer.h" +#include "clang/Sema/SemaDiagnostic.h" #include <map> using namespace clang; @@ -141,10 +141,12 @@ public: AtPropDeclsTy AtExtProps; // Look through extensions. - for (ObjCCategoryDecl *Cat = iface->getCategoryList(); - Cat; Cat = Cat->getNextClassCategory()) - if (Cat->IsClassExtension()) - collectProperties(Cat, AtExtProps, &AtProps); + for (ObjCInterfaceDecl::visible_extensions_iterator + ext = iface->visible_extensions_begin(), + extEnd = iface->visible_extensions_end(); + ext != extEnd; ++ext) { + collectProperties(*ext, AtExtProps, &AtProps); + } for (AtPropDeclsTy::iterator I = AtExtProps.begin(), E = AtExtProps.end(); I != E; ++I) { @@ -226,8 +228,10 @@ private: for (PropsTy::iterator I = props.begin(), E = props.end(); I != E; ++I) { if (I->ImplD) - Pass.TA.clearDiagnostic(diag::err_arc_assign_property_ownership, - I->ImplD->getLocation()); + Pass.TA.clearDiagnostic(diag::err_arc_strong_property_ownership, + diag::err_arc_assign_property_ownership, + diag::err_arc_inconsistent_property_ownership, + I->IvarD->getLocation()); } } @@ -253,8 +257,10 @@ private: } } if (I->ImplD) - Pass.TA.clearDiagnostic(diag::err_arc_assign_property_ownership, - I->ImplD->getLocation()); + Pass.TA.clearDiagnostic(diag::err_arc_strong_property_ownership, + diag::err_arc_assign_property_ownership, + diag::err_arc_inconsistent_property_ownership, + I->IvarD->getLocation()); } } @@ -276,8 +282,10 @@ private: canUseWeak ? "__weak " : "__unsafe_unretained "); } if (I->ImplD) { - Pass.TA.clearDiagnostic(diag::err_arc_assign_property_ownership, - I->ImplD->getLocation()); + Pass.TA.clearDiagnostic(diag::err_arc_strong_property_ownership, + diag::err_arc_assign_property_ownership, + diag::err_arc_inconsistent_property_ownership, + I->IvarD->getLocation()); Pass.TA.clearDiagnostic( diag::err_arc_objc_property_default_assign_on_object, I->ImplD->getLocation()); |