diff options
author | Fariborz Jahanian <fjahanian@apple.com> | 2013-09-04 16:43:57 +0000 |
---|---|---|
committer | Fariborz Jahanian <fjahanian@apple.com> | 2013-09-04 16:43:57 +0000 |
commit | 8b10230f54e9b97750834a2a57db4920ed3abd90 (patch) | |
tree | a697de2dfa869f7dd736be23ab96bd90c1476413 /clang/lib | |
parent | bb556156a4ae7cd6de66c42649387476e076326e (diff) | |
download | bcm5719-llvm-8b10230f54e9b97750834a2a57db4920ed3abd90.tar.gz bcm5719-llvm-8b10230f54e9b97750834a2a57db4920ed3abd90.zip |
ObjectiveC migrator. Refactor last patch on
annotations. (was r189892).
llvm-svn: 189956
Diffstat (limited to 'clang/lib')
-rw-r--r-- | clang/lib/ARCMigrate/ObjCMT.cpp | 25 |
1 files changed, 8 insertions, 17 deletions
diff --git a/clang/lib/ARCMigrate/ObjCMT.cpp b/clang/lib/ARCMigrate/ObjCMT.cpp index e778c76f4a4..86312b6e0c0 100644 --- a/clang/lib/ARCMigrate/ObjCMT.cpp +++ b/clang/lib/ARCMigrate/ObjCMT.cpp @@ -1090,11 +1090,12 @@ void ObjCMigrateASTConsumer::migrateAddMethodAnnotation( (MethodDecl->param_begin() == MethodDecl->param_end())) return; - bool ReturnCFAudited = false; if (!MethodIsReturnAnnotated) { RetEffect Ret = CE.getReturnValue(); - if (Ret.getObjKind() == RetEffect::CF && (Ret.isOwned() || Ret.notOwned())) - ReturnCFAudited = true; + if (Ret.getObjKind() == RetEffect::CF && (Ret.isOwned() || Ret.notOwned())) { + AddCFAnnotations(Ctx, CE, MethodDecl, false); + return; + } else if (!AuditedType(MethodDecl->getResultType())) return; } @@ -1103,26 +1104,16 @@ void ObjCMigrateASTConsumer::migrateAddMethodAnnotation( // Now, how about argument types. llvm::ArrayRef<ArgEffect> AEArgs = CE.getArgs(); unsigned i = 0; - bool ArgCFAudited = false; for (ObjCMethodDecl::param_const_iterator pi = MethodDecl->param_begin(), pe = MethodDecl->param_end(); pi != pe; ++pi, ++i) { const ParmVarDecl *pd = *pi; ArgEffect AE = AEArgs[i]; - if (AE == DecRef /*CFConsumed annotated*/ || AE == IncRef) { - if ((AE == DecRef && !pd->getAttr<CFConsumedAttr>()) || - AE == IncRef) - ArgCFAudited = true; - } - else { - QualType AT = pd->getType(); - if (!AuditedType(AT)) { - AddCFAnnotations(Ctx, CE, MethodDecl, MethodIsReturnAnnotated); - return; - } + if ((AE == DecRef && !pd->getAttr<CFConsumedAttr>()) || AE == IncRef || + !AuditedType(pd->getType())) { + AddCFAnnotations(Ctx, CE, MethodDecl, MethodIsReturnAnnotated); + return; } } - if (ReturnCFAudited || ArgCFAudited) - AddCFAnnotations(Ctx, CE, MethodDecl, MethodIsReturnAnnotated); return; } |