From: Anders Carlsson Date: Fri, 30 Oct 2009 01:52:02 +0000 (+0000) Subject: Fix thinko, mangleCXXRtti should obviously take a QualType! X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=d313e40ff8a20e49a8414880852eac3750082483;p=clang Fix thinko, mangleCXXRtti should obviously take a QualType! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@85565 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/CodeGen/CGRtti.cpp b/lib/CodeGen/CGRtti.cpp index 8351db552a..7af15f0a8c 100644 --- a/lib/CodeGen/CGRtti.cpp +++ b/lib/CodeGen/CGRtti.cpp @@ -23,8 +23,7 @@ llvm::Constant *CodeGenModule::GenerateRtti(const CXXRecordDecl *RD) { llvm::SmallString<256> OutName; llvm::raw_svector_ostream Out(OutName); - mangleCXXRtti(getMangleContext(), - Context.getTagDeclType(RD).getTypePtr(), Out); + mangleCXXRtti(getMangleContext(), Context.getTagDeclType(RD), Out); llvm::GlobalVariable::LinkageTypes linktype; linktype = llvm::GlobalValue::WeakAnyLinkage; diff --git a/lib/CodeGen/Mangle.cpp b/lib/CodeGen/Mangle.cpp index ff8cc2b044..a5b3452796 100644 --- a/lib/CodeGen/Mangle.cpp +++ b/lib/CodeGen/Mangle.cpp @@ -53,7 +53,7 @@ namespace { void mangleCXXVtable(const CXXRecordDecl *RD); void mangleCXXVTT(const CXXRecordDecl *RD); - void mangleCXXRtti(const Type *Ty); + void mangleCXXRtti(QualType Ty); void mangleCXXCtor(const CXXConstructorDecl *D, CXXCtorType Type); void mangleCXXDtor(const CXXDestructorDecl *D, CXXDtorType Type); @@ -212,12 +212,11 @@ void CXXNameMangler::mangleCXXVTT(const CXXRecordDecl *RD) { mangleName(RD); } -void CXXNameMangler::mangleCXXRtti(const Type *Ty) { +void CXXNameMangler::mangleCXXRtti(QualType Ty) { // ::= TI # typeinfo structure Out << "_ZTI"; - // FIXME: mangleType should probably take a const Type * instead. - mangleType(QualType(Ty, 0)); + mangleType(Ty); } void CXXNameMangler::mangleGuardVariable(const VarDecl *D) { @@ -1434,7 +1433,7 @@ namespace clang { os.flush(); } - void mangleCXXRtti(MangleContext &Context, const Type *Ty, + void mangleCXXRtti(MangleContext &Context, QualType Ty, llvm::raw_ostream &os) { CXXNameMangler Mangler(Context, os); Mangler.mangleCXXRtti(Ty); diff --git a/lib/CodeGen/Mangle.h b/lib/CodeGen/Mangle.h index 0d70948b9d..7f46a106f3 100644 --- a/lib/CodeGen/Mangle.h +++ b/lib/CodeGen/Mangle.h @@ -67,7 +67,7 @@ namespace clang { llvm::raw_ostream &os); void mangleCXXVTT(MangleContext &Context, const CXXRecordDecl *RD, llvm::raw_ostream &os); - void mangleCXXRtti(MangleContext &Context, const Type *T, + void mangleCXXRtti(MangleContext &Context, QualType T, llvm::raw_ostream &os); void mangleCXXCtor(MangleContext &Context, const CXXConstructorDecl *D, CXXCtorType Type, llvm::raw_ostream &os);