]> granicus.if.org Git - clang/commitdiff
Improve the const-ness of a few methods.
authorArgyrios Kyrtzidis <akyrtzi@gmail.com>
Sun, 12 Oct 2008 18:40:01 +0000 (18:40 +0000)
committerArgyrios Kyrtzidis <akyrtzi@gmail.com>
Sun, 12 Oct 2008 18:40:01 +0000 (18:40 +0000)
No functionality change.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57417 91177308-0d34-0410-b5e6-96231b3b80d8

include/clang/AST/Decl.h
include/clang/AST/DeclBase.h
lib/AST/DeclBase.cpp
lib/AST/DeclCXX.cpp

index a6593778aba5382395ea5e0743b7f5c7c96d8b2a..e18cfc59e3c2a344d7e6c52aa0c645ff58ba1b3b 100644 (file)
@@ -99,7 +99,8 @@ protected:
     : NamedDecl(DK, L, Id), NextDeclarator(PrevDecl), Next(0), DeclCtx(DC) {}
   
 public:
-  DeclContext *getDeclContext() const { return DeclCtx; }
+  const DeclContext *getDeclContext() const { return DeclCtx; }
+  DeclContext *getDeclContext() { return DeclCtx; }
 
   ScopedDecl *getNext() const { return Next; }
   void setNext(ScopedDecl *N) { Next = N; }
@@ -311,7 +312,7 @@ public:
   bool isBlockVarDecl() const {
     if (getKind() != Decl::Var)
       return false;
-    if (DeclContext *DC = getDeclContext())
+    if (const DeclContext *DC = getDeclContext())
       return DC->isFunctionOrMethod();
     return false;
   }
@@ -1036,7 +1037,8 @@ public:
     Args.clear(); 
     Args.insert(Args.begin(), args, args+numargs);
   }
-  DeclContext *getParentContext() const { return ParentContext; }
+  const DeclContext *getParentContext() const { return ParentContext; }
+  DeclContext *getParentContext() { return ParentContext; }
   
   /// arg_iterator - Iterate over the ParmVarDecl's for this block.
   typedef llvm::SmallVector<ParmVarDecl*, 8>::const_iterator param_iterator;
index d8b5b378f3b648dd2635406dc437b269e6ecc707..ac6e19610bc5aebdb1b8aa455d5cb4bc351be930 100644 (file)
@@ -299,7 +299,10 @@ protected:
 public:
   /// getParent - Returns the containing DeclContext if this is a ScopedDecl,
   /// else returns NULL.
-  DeclContext *getParent() const;
+  DeclContext *getParent();
+  const DeclContext *getParent() const {
+    return const_cast<DeclContext*>(this)->getParent();
+  }
 
   bool isFunctionOrMethod() const {
     switch (DeclKind) {
index 1ea545ba5d67cc40fd3c3677252feb3bc8626a50..265913ccc017b5f943c68a9e9a9df27ec96322b8 100644 (file)
@@ -344,10 +344,10 @@ DeclContext *Decl::castToDeclContext(const Decl *D) {
 // DeclContext Implementation
 //===----------------------------------------------------------------------===//
 
-DeclContext *DeclContext::getParent() const {
-  if (const ScopedDecl *SD = dyn_cast<ScopedDecl>(this))
+DeclContext *DeclContext::getParent() {
+  if (ScopedDecl *SD = dyn_cast<ScopedDecl>(this))
     return SD->getDeclContext();
-  else if (const BlockDecl *BD = dyn_cast<BlockDecl>(this))
+  else if (BlockDecl *BD = dyn_cast<BlockDecl>(this))
     return BD->getParentContext();
   else
     return NULL;
index 0a65ab34f0eedc041c2ab18a3adc8cb2da35f4a8..3f937914add186619d552a95ca2526bd3ef30a61 100644 (file)
@@ -54,7 +54,8 @@ CXXMethodDecl::Create(ASTContext &C, CXXRecordDecl *RD,
 
 QualType CXXMethodDecl::getThisType(ASTContext &C) const {
   assert(isInstance() && "No 'this' for static methods!");
-  QualType ClassTy = C.getTagDeclType(cast<CXXRecordDecl>(getParent()));
+  QualType ClassTy = C.getTagDeclType(const_cast<CXXRecordDecl*>(
+                                            cast<CXXRecordDecl>(getParent())));
   QualType ThisTy = C.getPointerType(ClassTy);
   ThisTy.addConst();
   return ThisTy;