Add mangling for VTTs.

llvm-svn: 85363
This commit is contained in:
Mike Stump 2009-10-28 01:51:46 +00:00
parent 4a609f3cef
commit 82d25e4e5e
2 changed files with 9 additions and 0 deletions

View File

@ -52,6 +52,7 @@ namespace {
void mangleGuardVariable(const VarDecl *D);
void mangleCXXVtable(const CXXRecordDecl *RD);
void mangleCXXVTT(const CXXRecordDecl *RD);
void mangleCXXRtti(const CXXRecordDecl *RD);
void mangleCXXCtor(const CXXConstructorDecl *D, CXXCtorType Type);
void mangleCXXDtor(const CXXDestructorDecl *D, CXXDtorType Type);
@ -204,6 +205,12 @@ void CXXNameMangler::mangleCXXVtable(const CXXRecordDecl *RD) {
mangleName(RD);
}
void CXXNameMangler::mangleCXXVTT(const CXXRecordDecl *RD) {
// <special-name> ::= TT <type> # VTT structure
Out << "_ZTT";
mangleName(RD);
}
void CXXNameMangler::mangleCXXRtti(const CXXRecordDecl *RD) {
// <special-name> ::= TI <type> # typeinfo structure
Out << "_ZTI";

View File

@ -65,6 +65,8 @@ namespace clang {
llvm::raw_ostream &os);
void mangleCXXVtable(MangleContext &Context, const CXXRecordDecl *RD,
llvm::raw_ostream &os);
void mangleCXXVTT(MangleContext &Context, const CXXRecordDecl *RD,
llvm::raw_ostream &os);
void mangleCXXRtti(MangleContext &Context, const CXXRecordDecl *RD,
llvm::raw_ostream &os);
void mangleCXXCtor(MangleContext &Context, const CXXConstructorDecl *D,