summaryrefslogtreecommitdiffstats
path: root/clang/lib/ARCMigrate/Transforms.h
diff options
context:
space:
mode:
authorArgyrios Kyrtzidis <akyrtzi@gmail.com>2011-11-06 18:57:57 +0000
committerArgyrios Kyrtzidis <akyrtzi@gmail.com>2011-11-06 18:57:57 +0000
commitaaa999660bd94735a369cd6edf185718015ee71d (patch)
tree47575b4fc5fb4bde46eacce8ff8a897775d83e6c /clang/lib/ARCMigrate/Transforms.h
parentb7e86d4ee2beddfd964bb77fdf33553c898e59ba (diff)
downloadbcm5719-llvm-aaa999660bd94735a369cd6edf185718015ee71d.tar.gz
bcm5719-llvm-aaa999660bd94735a369cd6edf185718015ee71d.zip
[arcmt] Refactor PropertiesRewriter to use MigrationContext.
llvm-svn: 143882
Diffstat (limited to 'clang/lib/ARCMigrate/Transforms.h')
-rw-r--r--clang/lib/ARCMigrate/Transforms.h21
1 files changed, 20 insertions, 1 deletions
diff --git a/clang/lib/ARCMigrate/Transforms.h b/clang/lib/ARCMigrate/Transforms.h
index 515844656a0..4ff35a5daf0 100644
--- a/clang/lib/ARCMigrate/Transforms.h
+++ b/clang/lib/ARCMigrate/Transforms.h
@@ -37,7 +37,6 @@ void rewriteUnbridgedCasts(MigrationPass &pass);
void makeAssignARCSafe(MigrationPass &pass);
void removeRetainReleaseDeallocFinalize(MigrationPass &pass);
void removeZeroOutPropsInDeallocFinalize(MigrationPass &pass);
-void rewriteProperties(MigrationPass &pass);
void rewriteBlockObjCVariable(MigrationPass &pass);
void rewriteUnusedInitDelegate(MigrationPass &pass);
void checkAPIUses(MigrationPass &pass);
@@ -58,10 +57,25 @@ public:
Stmt *getTopStmt() { return TopStmt; }
};
+class ObjCImplementationContext {
+ MigrationContext &MigrateCtx;
+ ObjCImplementationDecl *ImpD;
+
+public:
+ ObjCImplementationContext(MigrationContext &MigrateCtx,
+ ObjCImplementationDecl *D)
+ : MigrateCtx(MigrateCtx), ImpD(D) {}
+
+ MigrationContext &getMigrationContext() { return MigrateCtx; }
+ ObjCImplementationDecl *getImplementationDecl() { return ImpD; }
+};
+
class ASTTraverser {
public:
virtual ~ASTTraverser();
+ virtual void traverseTU(MigrationContext &MigrateCtx) { }
virtual void traverseBody(BodyContext &BodyCtx) { }
+ virtual void traverseObjCImplementation(ObjCImplementationContext &ImplCtx) {}
};
class MigrationContext {
@@ -87,6 +101,11 @@ public:
void traverse(TranslationUnitDecl *TU);
};
+class PropertyRewriteTraverser : public ASTTraverser {
+public:
+ virtual void traverseObjCImplementation(ObjCImplementationContext &ImplCtx);
+};
+
// GC transformations
class GCCollectableCallsTraverser : public ASTTraverser {
OpenPOWER on IntegriCloud