summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFariborz Jahanian <fjahanian@apple.com>2013-07-08 22:49:25 +0000
committerFariborz Jahanian <fjahanian@apple.com>2013-07-08 22:49:25 +0000
commit7ac20e1031149bc8f8dd0013fdbe7503b928835f (patch)
tree2c4251f8347ebb9fcc9f9ead82b15157f883f967
parent4670d47fd027d8557937bf6ed8a1a3954a71911b (diff)
downloadbcm5719-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.cpp7
-rw-r--r--clang/test/ARCMT/objcmt-property.m10
-rw-r--r--clang/test/ARCMT/objcmt-property.m.result10
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
OpenPOWER on IntegriCloud