diff options
| author | Fariborz Jahanian <fjahanian@apple.com> | 2013-07-08 22:49:25 +0000 |
|---|---|---|
| committer | Fariborz Jahanian <fjahanian@apple.com> | 2013-07-08 22:49:25 +0000 |
| commit | 7ac20e1031149bc8f8dd0013fdbe7503b928835f (patch) | |
| tree | 2c4251f8347ebb9fcc9f9ead82b15157f883f967 | |
| parent | 4670d47fd027d8557937bf6ed8a1a3954a71911b (diff) | |
| download | bcm5719-llvm-7ac20e1031149bc8f8dd0013fdbe7503b928835f.tar.gz bcm5719-llvm-7ac20e1031149bc8f8dd0013fdbe7503b928835f.zip | |
ObjC migration: Skip over setter/getter with attributes
for now.
llvm-svn: 185879
| -rw-r--r-- | clang/lib/ARCMigrate/ObjCMT.cpp | 7 | ||||
| -rw-r--r-- | clang/test/ARCMT/objcmt-property.m | 10 | ||||
| -rw-r--r-- | clang/test/ARCMT/objcmt-property.m.result | 10 |
3 files changed, 26 insertions, 1 deletions
diff --git a/clang/lib/ARCMigrate/ObjCMT.cpp b/clang/lib/ARCMigrate/ObjCMT.cpp index d01dca45a2a..5cb2223b8a5 100644 --- a/clang/lib/ARCMigrate/ObjCMT.cpp +++ b/clang/lib/ARCMigrate/ObjCMT.cpp @@ -199,6 +199,10 @@ void ObjCMigrateASTConsumer::migrateObjCInterfaceDecl(ASTContext &Ctx, QualType GRT = Method->getResultType(); if (GRT->isVoidType()) continue; + // FIXME. Don't know what todo with attributes, skip for now. + if (Method->hasAttrs()) + continue; + Selector GetterSelector = Method->getSelector(); IdentifierInfo *getterName = GetterSelector.getIdentifierInfoForSlot(0); Selector SetterSelector = @@ -212,7 +216,8 @@ void ObjCMigrateASTConsumer::migrateObjCInterfaceDecl(ASTContext &Ctx, continue; const ParmVarDecl *argDecl = *SetterMethod->param_begin(); QualType ArgType = argDecl->getType(); - if (!Ctx.hasSameUnqualifiedType(ArgType, GRT)) + if (!Ctx.hasSameUnqualifiedType(ArgType, GRT) || + SetterMethod->hasAttrs()) continue; edit::Commit commit(*Editor); edit::rewriteToObjCProperty(Method, SetterMethod, *NSAPIObj, commit); diff --git a/clang/test/ARCMT/objcmt-property.m b/clang/test/ARCMT/objcmt-property.m index f2d5e1a421f..d13a491a89a 100644 --- a/clang/test/ARCMT/objcmt-property.m +++ b/clang/test/ARCMT/objcmt-property.m @@ -14,6 +14,16 @@ - (NSString *) StrongProp; - (void) setStrongProp : (NSString *)Val; + +- (NSString *) UnavailProp __attribute__((unavailable)); +- (void) setUnavailProp : (NSString *)Val; + +- (NSString *) UnavailProp1 __attribute__((unavailable)); +- (void) setUnavailProp1 : (NSString *)Val __attribute__((unavailable)); + +- (NSString *) UnavailProp2; +- (void) setUnavailProp2 : (NSString *)Val __attribute__((unavailable)); + @end @implementation I diff --git a/clang/test/ARCMT/objcmt-property.m.result b/clang/test/ARCMT/objcmt-property.m.result index 87b71e1f4f1..771d8634bf3 100644 --- a/clang/test/ARCMT/objcmt-property.m.result +++ b/clang/test/ARCMT/objcmt-property.m.result @@ -14,6 +14,16 @@ @property(strong) NSString * StrongProp; + +- (NSString *) UnavailProp __attribute__((unavailable)); +- (void) setUnavailProp : (NSString *)Val; + +- (NSString *) UnavailProp1 __attribute__((unavailable)); +- (void) setUnavailProp1 : (NSString *)Val __attribute__((unavailable)); + +- (NSString *) UnavailProp2; +- (void) setUnavailProp2 : (NSString *)Val __attribute__((unavailable)); + @end @implementation I |

