[PATCH] Fix PR20479 -- missing vftable slots in case of virtual inheritance vs return adjusting thunks

Reid Kleckner rnk at google.com
Fri Aug 8 11:22:03 PDT 2014


lgtm

================
Comment at: lib/AST/VTableBuilder.cpp:3177-3178
@@ +3176,4 @@
+  // Recursive case: get all the vtables from our bases and remove anything
+  // that shares a virtual base.  Look at non-virtual bases first so we get
+  // longer inheritance paths from the derived class to the virtual bases.
+  llvm::SmallVector<CXXBaseSpecifier, 10> Bases;
----------------
Yeah.  It seems clear to me that they reorder base specifiers into record layout order, which is approximately this.  The only differences in order will arise from non-polymorphic bases, which shouldn't matter.

http://reviews.llvm.org/D4829






More information about the cfe-commits mailing list