Fix some const_cast issues.  This is the beginning of the rabbit hole.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78393 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/CodeGen/CGCXX.cpp b/lib/CodeGen/CGCXX.cpp
index f1a5e1c..00993be 100644
--- a/lib/CodeGen/CGCXX.cpp
+++ b/lib/CodeGen/CGCXX.cpp
@@ -506,9 +506,7 @@
   llvm::SmallString<256> OutName;
   llvm::raw_svector_ostream Out(OutName);
   QualType ClassTy;
-  // FIXME: What is the design on getTagDeclType when it requires casting
-  // away const?  mutable?
-  ClassTy = getContext().getTagDeclType(const_cast<CXXRecordDecl*>(RD));
+  ClassTy = getContext().getTagDeclType(RD);
   mangleCXXRtti(ClassTy, getContext(), Out);
   const char *Name = OutName.c_str();
   llvm::GlobalVariable::LinkageTypes linktype;
@@ -599,9 +597,7 @@
   llvm::SmallString<256> OutName;
   llvm::raw_svector_ostream Out(OutName);
   QualType ClassTy;
-  // FIXME: What is the design on getTagDeclType when it requires casting
-  // away const?  mutable?
-  ClassTy = getContext().getTagDeclType(const_cast<CXXRecordDecl*>(RD));
+  ClassTy = getContext().getTagDeclType(RD);
   mangleCXXVtable(ClassTy, getContext(), Out);
   const char *Name = OutName.c_str();
   llvm::GlobalVariable::LinkageTypes linktype;
diff --git a/lib/CodeGen/CodeGenTypes.cpp b/lib/CodeGen/CodeGenTypes.cpp
index 0cb0c72..7b1b85c 100644
--- a/lib/CodeGen/CodeGenTypes.cpp
+++ b/lib/CodeGen/CodeGenTypes.cpp
@@ -121,8 +121,7 @@
 /// UpdateCompletedType - When we find the full definition for a TagDecl,
 /// replace the 'opaque' type we previously made for it if applicable.
 void CodeGenTypes::UpdateCompletedType(const TagDecl *TD) {
-  const Type *Key = 
-    Context.getTagDeclType(const_cast<TagDecl*>(TD)).getTypePtr();
+  const Type *Key = Context.getTagDeclType(TD).getTypePtr();
   llvm::DenseMap<const Type*, llvm::PATypeHolder>::iterator TDTI = 
     TagDeclTypes.find(Key);
   if (TDTI == TagDeclTypes.end()) return;
@@ -395,7 +394,7 @@
   // TagDecl's are not necessarily unique, instead use the (clang)
   // type connected to the decl.
   const Type *Key = 
-    Context.getTagDeclType(const_cast<TagDecl*>(TD)).getTypePtr();
+    Context.getTagDeclType(TD).getTypePtr();
   llvm::DenseMap<const Type*, llvm::PATypeHolder>::iterator TDTI = 
     TagDeclTypes.find(Key);
   
@@ -478,7 +477,7 @@
 const CGRecordLayout *
 CodeGenTypes::getCGRecordLayout(const TagDecl *TD) const {
   const Type *Key = 
-    Context.getTagDeclType(const_cast<TagDecl*>(TD)).getTypePtr();
+    Context.getTagDeclType(TD).getTypePtr();
   llvm::DenseMap<const Type*, CGRecordLayout *>::iterator I
     = CGRecordLayouts.find(Key);
   assert (I != CGRecordLayouts.end()