]> granicus.if.org Git - clang/commitdiff
Add mangling for VTTs.
authorMike Stump <mrs@apple.com>
Wed, 28 Oct 2009 01:51:46 +0000 (01:51 +0000)
committerMike Stump <mrs@apple.com>
Wed, 28 Oct 2009 01:51:46 +0000 (01:51 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@85363 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/Mangle.cpp
lib/CodeGen/Mangle.h

index 2e6034bbcd976c91f73d30df7d3194789e9f8ded..b0015956be2d7a6bb55ad6b7bc999703dde470de 100644 (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";
index 2cdb4e23919daaa6860868cfa9586ce182e9f77e..6ddec589afe09c2d8c229e57c0583f52ea4b3a46 100644 (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,