aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZhongxing Xu <xuzhongxing@gmail.com>2009-01-10 14:38:38 +0000
committerZhongxing Xu <xuzhongxing@gmail.com>2009-01-10 14:38:38 +0000
commitd2685209293a54fc2d888353c1fb839dcde616ef (patch)
tree9ef7bab8a1fd2894de59522a3bd2bb2c378bf505
parente58336400c9bea6daa4e4038ec71a61bf430dd0b (diff)
add a bunch of castToDeclContext/castFromDeclContext methods.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62027 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--include/clang/AST/DeclCXX.h27
1 files changed, 24 insertions, 3 deletions
diff --git a/include/clang/AST/DeclCXX.h b/include/clang/AST/DeclCXX.h
index 567751d710..5dbcce1432 100644
--- a/include/clang/AST/DeclCXX.h
+++ b/include/clang/AST/DeclCXX.h
@@ -489,6 +489,12 @@ public:
return D->getKind() >= CXXMethod && D->getKind() <= CXXConversion;
}
static bool classof(const CXXMethodDecl *D) { return true; }
+ static DeclContext *castToDeclContext(const CXXMethodDecl *D) {
+ return static_cast<DeclContext *>(const_cast<CXXMethodDecl*>(D));
+ }
+ static CXXMethodDecl *castFromDeclContext(const DeclContext *DC) {
+ return static_cast<CXXMethodDecl *>(const_cast<DeclContext*>(DC));
+ }
protected:
/// EmitImpl - Serialize this CXXMethodDecl. Called by Decl::Emit.
@@ -697,7 +703,12 @@ public:
return D->getKind() == CXXConstructor;
}
static bool classof(const CXXConstructorDecl *D) { return true; }
-
+ static DeclContext *castToDeclContext(const CXXConstructorDecl *D) {
+ return static_cast<DeclContext *>(const_cast<CXXConstructorDecl*>(D));
+ }
+ static CXXConstructorDecl *castFromDeclContext(const DeclContext *DC) {
+ return static_cast<CXXConstructorDecl *>(const_cast<DeclContext*>(DC));
+ }
/// EmitImpl - Serialize this CXXConstructorDecl. Called by Decl::Emit.
// FIXME: Implement this.
//virtual void EmitImpl(llvm::Serializer& S) const;
@@ -763,7 +774,12 @@ public:
return D->getKind() == CXXDestructor;
}
static bool classof(const CXXDestructorDecl *D) { return true; }
-
+ static DeclContext *castToDeclContext(const CXXDestructorDecl *D) {
+ return static_cast<DeclContext *>(const_cast<CXXDestructorDecl*>(D));
+ }
+ static CXXDestructorDecl *castFromDeclContext(const DeclContext *DC) {
+ return static_cast<CXXDestructorDecl *>(const_cast<DeclContext*>(DC));
+ }
/// EmitImpl - Serialize this CXXDestructorDecl. Called by Decl::Emit.
// FIXME: Implement this.
//virtual void EmitImpl(llvm::Serializer& S) const;
@@ -817,7 +833,12 @@ public:
return D->getKind() == CXXConversion;
}
static bool classof(const CXXConversionDecl *D) { return true; }
-
+ static DeclContext *castToDeclContext(const CXXConversionDecl *D) {
+ return static_cast<DeclContext *>(const_cast<CXXConversionDecl*>(D));
+ }
+ static CXXConversionDecl *castFromDeclContext(const DeclContext *DC) {
+ return static_cast<CXXConversionDecl *>(const_cast<DeclContext*>(DC));
+ }
/// EmitImpl - Serialize this CXXConversionDecl. Called by Decl::Emit.
// FIXME: Implement this.
//virtual void EmitImpl(llvm::Serializer& S) const;