summaryrefslogtreecommitdiffstats
path: root/clang/lib
diff options
context:
space:
mode:
Diffstat (limited to 'clang/lib')
-rw-r--r--clang/lib/CodeGen/Mangle.cpp7
-rw-r--r--clang/lib/CodeGen/Mangle.h2
2 files changed, 9 insertions, 0 deletions
diff --git a/clang/lib/CodeGen/Mangle.cpp b/clang/lib/CodeGen/Mangle.cpp
index 2e6034bbcd9..b0015956be2 100644
--- a/clang/lib/CodeGen/Mangle.cpp
+++ b/clang/lib/CodeGen/Mangle.cpp
@@ -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";
diff --git a/clang/lib/CodeGen/Mangle.h b/clang/lib/CodeGen/Mangle.h
index 2cdb4e23919..6ddec589afe 100644
--- a/clang/lib/CodeGen/Mangle.h
+++ b/clang/lib/CodeGen/Mangle.h
@@ -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,
OpenPOWER on IntegriCloud