]> granicus.if.org Git - clang/commitdiff
ObjectiveC migrator: minor refactoring of my last
authorFariborz Jahanian <fjahanian@apple.com>
Tue, 27 Aug 2013 23:56:54 +0000 (23:56 +0000)
committerFariborz Jahanian <fjahanian@apple.com>
Tue, 27 Aug 2013 23:56:54 +0000 (23:56 +0000)
cf annotation patch.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@189420 91177308-0d34-0410-b5e6-96231b3b80d8

lib/ARCMigrate/ObjCMT.cpp

index 4fa4b1e6606bfba096b02a6f877beb7b3ea099e7..56a042f7ff05300080ac1c61ffb4a50a4738faa1 100644 (file)
@@ -57,9 +57,9 @@ class ObjCMigrateASTConsumer : public ASTConsumer {
   
   void migrateCFAnnotation(ASTContext &Ctx, const Decl *Decl);
   void AddCFAnnotations(ASTContext &Ctx, const CallEffects &CE,
-                        const FunctionDecl *FuncDecl);
+                        const FunctionDecl *FuncDecl, bool ResultAnnotated);
   void AddCFAnnotations(ASTContext &Ctx, const CallEffects &CE,
-                        const ObjCMethodDecl *MethodDecl);
+                        const ObjCMethodDecl *MethodDecl, bool ResultAnnotated);
   
   void AnnotateImplicitBridging(ASTContext &Ctx);
   
@@ -868,10 +868,10 @@ void ObjCMigrateASTConsumer::migrateCFAnnotation(ASTContext &Ctx, const Decl *De
 
 void ObjCMigrateASTConsumer::AddCFAnnotations(ASTContext &Ctx,
                                               const CallEffects &CE,
-                                              const FunctionDecl *FuncDecl) {
+                                              const FunctionDecl *FuncDecl,
+                                              bool ResultAnnotated) {
   // Annotate function.
-  if (!FuncDecl->getAttr<CFReturnsRetainedAttr>() &&
-      !FuncDecl->getAttr<CFReturnsNotRetainedAttr>()) {
+  if (!ResultAnnotated) {
     RetEffect Ret = CE.getReturnValue();
     const char *AnnotationString = 0;
     if (Ret.getObjKind() == RetEffect::CF && Ret.isOwned()) {
@@ -947,7 +947,7 @@ ObjCMigrateASTConsumer::CF_BRIDGING_KIND
     else {
       QualType AT = pd->getType();
       if (!AuditedType(AT)) {
-        AddCFAnnotations(Ctx, CE, FuncDecl);
+        AddCFAnnotations(Ctx, CE, FuncDecl, FuncIsReturnAnnotated);
         return CF_BRIDGING_NONE;
       }
     }
@@ -974,10 +974,10 @@ void ObjCMigrateASTConsumer::migrateARCSafeAnnotation(ASTContext &Ctx,
 
 void ObjCMigrateASTConsumer::AddCFAnnotations(ASTContext &Ctx,
                                               const CallEffects &CE,
-                                              const ObjCMethodDecl *MethodDecl) {
+                                              const ObjCMethodDecl *MethodDecl,
+                                              bool ResultAnnotated) {
   // Annotate function.
-  if (!MethodDecl->getAttr<CFReturnsRetainedAttr>() &&
-      !MethodDecl->getAttr<CFReturnsNotRetainedAttr>()) {
+  if (!ResultAnnotated) {
     RetEffect Ret = CE.getReturnValue();
     const char *AnnotationString = 0;
     if (Ret.getObjKind() == RetEffect::CF && Ret.isOwned()) {
@@ -1052,7 +1052,7 @@ ObjCMigrateASTConsumer::CF_BRIDGING_KIND
     else {
       QualType AT = pd->getType();
       if (!AuditedType(AT)) {
-        AddCFAnnotations(Ctx, CE, MethodDecl);
+        AddCFAnnotations(Ctx, CE, MethodDecl, MethodIsReturnAnnotated);
         return CF_BRIDGING_NONE;
       }
     }