diff options
Diffstat (limited to 'clang/lib/ARCMigrate/ObjCMT.cpp')
| -rw-r--r-- | clang/lib/ARCMigrate/ObjCMT.cpp | 20 | 
1 files changed, 10 insertions, 10 deletions
| diff --git a/clang/lib/ARCMigrate/ObjCMT.cpp b/clang/lib/ARCMigrate/ObjCMT.cpp index 4fa4b1e6606..56a042f7ff0 100644 --- a/clang/lib/ARCMigrate/ObjCMT.cpp +++ b/clang/lib/ARCMigrate/ObjCMT.cpp @@ -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;        }      } | 

