diff options
author | Argyrios Kyrtzidis <akyrtzi@gmail.com> | 2011-11-04 15:58:22 +0000 |
---|---|---|
committer | Argyrios Kyrtzidis <akyrtzi@gmail.com> | 2011-11-04 15:58:22 +0000 |
commit | d2b911235479577c910efdfa7d5ac52046c2794d (patch) | |
tree | a08c66e868b0c72ea3d3fc61c203498b8c08fc35 /clang/lib/ARCMigrate/TransRetainReleaseDealloc.cpp | |
parent | d8cdfbc9058fe97528dba4ca7f854045aa955cd5 (diff) | |
download | bcm5719-llvm-d2b911235479577c910efdfa7d5ac52046c2794d.tar.gz bcm5719-llvm-d2b911235479577c910efdfa7d5ac52046c2794d.zip |
[arcmt] For GC, cleanup and turn -finalize to -dealloc.
llvm-svn: 143701
Diffstat (limited to 'clang/lib/ARCMigrate/TransRetainReleaseDealloc.cpp')
-rw-r--r-- | clang/lib/ARCMigrate/TransRetainReleaseDealloc.cpp | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/clang/lib/ARCMigrate/TransRetainReleaseDealloc.cpp b/clang/lib/ARCMigrate/TransRetainReleaseDealloc.cpp index 394f8480e11..bf2517f1198 100644 --- a/clang/lib/ARCMigrate/TransRetainReleaseDealloc.cpp +++ b/clang/lib/ARCMigrate/TransRetainReleaseDealloc.cpp @@ -36,13 +36,15 @@ class RetainReleaseDeallocRemover : ExprSet Removables; llvm::OwningPtr<ParentMap> StmtMap; - Selector DelegateSel; + Selector DelegateSel, FinalizeSel; public: RetainReleaseDeallocRemover(MigrationPass &pass) : Body(0), Pass(pass) { DelegateSel = Pass.Ctx.Selectors.getNullarySelector(&Pass.Ctx.Idents.get("delegate")); + FinalizeSel = + Pass.Ctx.Selectors.getNullarySelector(&Pass.Ctx.Idents.get("finalize")); } void transformBody(Stmt *body) { @@ -55,6 +57,8 @@ public: bool VisitObjCMessageExpr(ObjCMessageExpr *E) { switch (E->getMethodFamily()) { default: + if (E->isInstanceMessage() && E->getSelector() == FinalizeSel) + break; return true; case OMF_autorelease: if (isRemovable(E)) { @@ -211,7 +215,7 @@ private: } // anonymous namespace -void trans::removeRetainReleaseDealloc(MigrationPass &pass) { +void trans::removeRetainReleaseDeallocFinalize(MigrationPass &pass) { BodyTransform<RetainReleaseDeallocRemover> trans(pass); trans.TraverseDecl(pass.Ctx.getTranslationUnitDecl()); } |