Fix thinko, mangleCXXRtti should obviously take a QualType!

llvm-svn: 85565
This commit is contained in:
Anders Carlsson 2009-10-30 01:52:02 +00:00
parent 4246f00e0c
commit 958c9f8524
3 changed files with 6 additions and 8 deletions

View File

@ -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;

View File

@ -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) {
// <special-name> ::= TI <type> # 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);

View File

@ -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);