]> granicus.if.org Git - clang/commitdiff
Add mangleSubstitution/addSubstitution variants that take a NamedDecl.
authorAnders Carlsson <andersca@mac.com>
Thu, 17 Sep 2009 03:53:28 +0000 (03:53 +0000)
committerAnders Carlsson <andersca@mac.com>
Thu, 17 Sep 2009 03:53:28 +0000 (03:53 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82116 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/Mangle.cpp

index c0451bfa02c4079f58275c61c15238f5d485763a..6429bd7c463f98500b767839474e62074b2a96ec 100644 (file)
@@ -55,8 +55,17 @@ namespace {
     void mangleCXXDtor(const CXXDestructorDecl *D, CXXDtorType Type);
 
   private:
+    bool mangleSubstitution(const NamedDecl *ND) {
+      return mangleSubstitution(reinterpret_cast<uintptr_t>(ND));
+    }
     bool mangleSubstitution(QualType T);
+    bool mangleSubstitution(uintptr_t Ptr);
+    
+    void addSubstitution(const NamedDecl *ND) {
+      addSubstitution(reinterpret_cast<uintptr_t>(ND));
+    }
     void addSubstitution(QualType T);
+    void addSubstitution(uintptr_t Ptr);
     
     bool mangleFunctionDecl(const FunctionDecl *FD);
 
@@ -912,8 +921,12 @@ void CXXNameMangler::mangleTemplateArgument(const TemplateArgument &A) {
 bool CXXNameMangler::mangleSubstitution(QualType T) {
   uintptr_t TypePtr = reinterpret_cast<uintptr_t>(T.getAsOpaquePtr());
 
+  return mangleSubstitution(TypePtr);
+}
+
+bool CXXNameMangler::mangleSubstitution(uintptr_t Ptr) {
   llvm::DenseMap<uintptr_t, unsigned>::iterator I = 
-    Substitutions.find(TypePtr);
+    Substitutions.find(Ptr);
   if (I == Substitutions.end())
     return false;
   
@@ -947,10 +960,14 @@ bool CXXNameMangler::mangleSubstitution(QualType T) {
 
 void CXXNameMangler::addSubstitution(QualType T) {
   uintptr_t TypePtr = reinterpret_cast<uintptr_t>(T.getAsOpaquePtr());
+  addSubstitution(TypePtr);
+}
+
+void CXXNameMangler::addSubstitution(uintptr_t Ptr) {
   unsigned SeqID = Substitutions.size();
   
-  assert(!Substitutions.count(TypePtr) && "Substitution already exists!");
-  Substitutions[TypePtr] = SeqID;  
+  assert(!Substitutions.count(Ptr) && "Substitution already exists!");
+  Substitutions[Ptr] = SeqID;  
 }
 
 namespace clang {