================
Comment at: lib/AST/VTableBuilder.cpp:2322
@@ -2354,3 +2321,3 @@
                           Builder.getAddressPoints(),
-                          Builder.isMicrosoftABI());
+                          false);
 }
----------------
Reid Kleckner wrote:
> /*IsMicrosoftABI=*/
Done

================
Comment at: lib/CodeGen/CGExprConstant.cpp:56
@@ -55,4 +55,3 @@
 
-  void AppendVTablePointer(BaseSubobject Base, llvm::Constant *VTable,
-                           const CXXRecordDecl *VTableClass);
+  void AppendVTablePointer(BaseSubobject Base, const CXXRecordDecl 
*VTableClass);
 
----------------
Reid Kleckner wrote:
> This method is not defined, so you can drop it.
Good catch - I forgot to remove the declaration.

================
Comment at: lib/CodeGen/MicrosoftCXXABI.cpp:325
@@ +324,3 @@
+
+  /// EmittedVFTables - Holds the set of the record decls we've deferred vtable
+  /// emission for.
----------------
Reid Kleckner wrote:
> "EmittedVFTables" is wrong.  Maybe just \brief?
Done; changed the VBTablesMap comment too for consistency.

================
Comment at: include/clang/AST/Mangle.h:116
@@ -111,1 +115,3 @@
+                                const CXXRecordDecl *LastVBase,
+                                bool TheOnlyVFTable, raw_ostream &) = 0;
   virtual void mangleCXXVTT(const CXXRecordDecl *RD,
----------------
Reid Kleckner wrote:
> Ultimately, for vbtables, I needed to walk the entire inheritance graph of 
> the class to figure out how things were mangled.  As a result, I ended up 
> feeding the mangler a carefully constructed BasePath and dropping all the 
> complex logic from the mangler.  Long term, we'll have to do the same here, 
> so I'd drop TheOnlyVFTable and LastVBase and adjust the BasePath before 
> feeding it to the mangler.
OK, done

================
Comment at: lib/AST/MicrosoftMangle.cpp:1873
@@ +1872,3 @@
+  Mangler.getStream() << "6B"; // '6' for vftable, 'B' for const.
+  if (!TheOnlyVFTable) {
+    // FIXME: In some rare cases this code produces a bit incorrect mangling.
----------------
Reid Kleckner wrote:
> Yep, I'd move this all out to the caller.
Agreed, done

================
Comment at: include/clang/AST/Mangle.h:109
@@ -108,1 +108,3 @@
                                         raw_ostream &) = 0;
+  // FIXME: Some of these objects only exist in select ABIs. We should probably
+  // only declare them in ABI-specific manglers?
----------------
Reid Kleckner wrote:
> A MicrosoftMangle.h which only exposes MicrosoftMangleContext and is only 
> included by MicrosoftCXXABI.cpp (ditto for Itanium)?  Sounds like a good 
> separate patch.
> 
Would you mind if I do this after landing this?
Also, it'd be a good time to rename VTable{Context,Builder} -> 
ItaniumVTable{Context,Builder} then.


http://llvm-reviews.chandlerc.com/D1532
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to