aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArgyrios Kyrtzidis <akyrtzi@gmail.com>2008-11-19 17:36:39 +0000
committerArgyrios Kyrtzidis <akyrtzi@gmail.com>2008-11-19 17:36:39 +0000
commit20bc6762282d192bd19be03094d4f311710e020c (patch)
treee5a94408487e31f6a0aec44c65610d1abb1d29ab
parentdbd32c20c529430fe1d22d87317f039849b8b0bb (diff)
Make the non-const DeclContext::getParent call the const version, instead of the other way around.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59646 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--include/clang/AST/DeclBase.h7
-rw-r--r--lib/AST/DeclBase.cpp6
2 files changed, 7 insertions, 6 deletions
diff --git a/include/clang/AST/DeclBase.h b/include/clang/AST/DeclBase.h
index ba948078a6..bfc7607b74 100644
--- a/include/clang/AST/DeclBase.h
+++ b/include/clang/AST/DeclBase.h
@@ -294,9 +294,10 @@ protected:
public:
/// getParent - Returns the containing DeclContext if this is a ScopedDecl,
/// else returns NULL.
- DeclContext *getParent();
- const DeclContext *getParent() const {
- return const_cast<DeclContext*>(this)->getParent();
+ const DeclContext *getParent() const;
+ DeclContext *getParent() {
+ return const_cast<DeclContext*>(
+ const_cast<const DeclContext*>(this)->getParent());
}
bool isFunctionOrMethod() const {
diff --git a/lib/AST/DeclBase.cpp b/lib/AST/DeclBase.cpp
index 7e51ef5010..88d9a20855 100644
--- a/lib/AST/DeclBase.cpp
+++ b/lib/AST/DeclBase.cpp
@@ -353,10 +353,10 @@ DeclContext *Decl::castToDeclContext(const Decl *D) {
// DeclContext Implementation
//===----------------------------------------------------------------------===//
-DeclContext *DeclContext::getParent() {
- if (ScopedDecl *SD = dyn_cast<ScopedDecl>(this))
+const DeclContext *DeclContext::getParent() const {
+ if (const ScopedDecl *SD = dyn_cast<ScopedDecl>(this))
return SD->getDeclContext();
- else if (BlockDecl *BD = dyn_cast<BlockDecl>(this))
+ else if (const BlockDecl *BD = dyn_cast<BlockDecl>(this))
return BD->getParentContext();
else
return NULL;