Baby steps towards fixing PR5589. If a class needs a vtable pointer, add one.
llvm-svn: 91545
diff --git a/clang/lib/CodeGen/CGRecordLayoutBuilder.h b/clang/lib/CodeGen/CGRecordLayoutBuilder.h
index 4ebf4e8..cf84053 100644
--- a/clang/lib/CodeGen/CGRecordLayoutBuilder.h
+++ b/clang/lib/CodeGen/CGRecordLayoutBuilder.h
@@ -23,6 +23,8 @@
}
namespace clang {
+ class ASTRecordLayout;
+ class CXXRecordDecl;
class FieldDecl;
class RecordDecl;
@@ -90,6 +92,9 @@
/// Returns false if the operation failed because the struct is not packed.
bool LayoutFields(const RecordDecl *D);
+ /// LayoutBases - layout the bases and vtable pointer of a record decl.
+ void LayoutBases(const CXXRecordDecl *RD, const ASTRecordLayout &Layout);
+
/// LayoutField - layout a single field. Returns false if the operation failed
/// because the current struct is not packed.
bool LayoutField(const FieldDecl *D, uint64_t FieldOffset);