int64_t GenerateVtableForBase(const CXXRecordDecl *RD, bool forPrimary,
bool Bottom, bool MorallyVirtual,
int64_t Offset, bool ForVirtualBase) {
- if (RD && !RD->isDynamicClass())
+ if (!RD->isDynamicClass())
return 0;
const ASTRecordLayout &Layout = CGM.getContext().getASTRecordLayout(RD);
MorallyVirtual, Offset, ForVirtualBase);
}
- void GenerateVtableForVBases(const CXXRecordDecl *RD,
- const CXXRecordDecl *Class) {
+ void GenerateVtableForVBases(const CXXRecordDecl *RD) {
for (CXXRecordDecl::base_class_const_iterator i = RD->bases_begin(),
e = RD->bases_end(); i != e; ++i) {
const CXXRecordDecl *Base =
InstallThunks(AP);
}
if (Base->getNumVBases())
- GenerateVtableForVBases(Base, Class);
+ GenerateVtableForVBases(Base);
}
}
};
std::vector<llvm::Constant *> methods;
VtableBuilder b(methods, RD, CGM);
b.GenerateVtableForBase(RD, true, true, false, 0, false);
- b.GenerateVtableForVBases(RD, RD);
+ b.GenerateVtableForVBases(RD);
register_index(RD, b.getIndex());
I = IndexFor.find(RD);
}
Offset = b.GenerateVtableForBase(RD, true, true, false, 0, false);
// then the vtables for all the virtual bases.
- b.GenerateVtableForVBases(RD, RD);
+ b.GenerateVtableForVBases(RD);
llvm::Constant *C;
llvm::ArrayType *type = llvm::ArrayType::get(Ptr8Ty, methods.size());