From: Anders Carlsson Date: Thu, 17 Sep 2009 03:53:28 +0000 (+0000) Subject: Add mangleSubstitution/addSubstitution variants that take a NamedDecl. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=d3a932a2980eef3c3ea2cd28f7946a185215d4e1;p=clang Add mangleSubstitution/addSubstitution variants that take a NamedDecl. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82116 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/CodeGen/Mangle.cpp b/lib/CodeGen/Mangle.cpp index c0451bfa02..6429bd7c46 100644 --- a/lib/CodeGen/Mangle.cpp +++ b/lib/CodeGen/Mangle.cpp @@ -55,8 +55,17 @@ namespace { void mangleCXXDtor(const CXXDestructorDecl *D, CXXDtorType Type); private: + bool mangleSubstitution(const NamedDecl *ND) { + return mangleSubstitution(reinterpret_cast(ND)); + } bool mangleSubstitution(QualType T); + bool mangleSubstitution(uintptr_t Ptr); + + void addSubstitution(const NamedDecl *ND) { + addSubstitution(reinterpret_cast(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(T.getAsOpaquePtr()); + return mangleSubstitution(TypePtr); +} + +bool CXXNameMangler::mangleSubstitution(uintptr_t Ptr) { llvm::DenseMap::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(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 {