diff options
| author | Zhongxing Xu <xuzhongxing@gmail.com> | 2009-01-10 14:38:38 +0000 |
|---|---|---|
| committer | Zhongxing Xu <xuzhongxing@gmail.com> | 2009-01-10 14:38:38 +0000 |
| commit | 776b2fa1ea34283861edc62d53441ede1015e72c (patch) | |
| tree | b5b903dd8caa68467af4fd6c8675fc83b68815c9 | |
| parent | 18571397557ac85233770fa5737d76f78a092dc5 (diff) | |
| download | bcm5719-llvm-776b2fa1ea34283861edc62d53441ede1015e72c.tar.gz bcm5719-llvm-776b2fa1ea34283861edc62d53441ede1015e72c.zip | |
add a bunch of castToDeclContext/castFromDeclContext methods.
llvm-svn: 62027
| -rw-r--r-- | clang/include/clang/AST/DeclCXX.h | 27 |
1 files changed, 24 insertions, 3 deletions
diff --git a/clang/include/clang/AST/DeclCXX.h b/clang/include/clang/AST/DeclCXX.h index 567751d7107..5dbcce1432f 100644 --- a/clang/include/clang/AST/DeclCXX.h +++ b/clang/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; |

