typedef uint64_t Index_t;
private:
std::vector<llvm::Constant *> &methods;
- std::vector<llvm::Constant *> submethods;
llvm::Type *Ptr8Ty;
/// Class - The most derived class that this vtable is being built for.
const CXXRecordDecl *Class;
// entry.
Methods.AddMethod(GD);
- submethods.push_back(m);
D1(printf(" vfn for %s at %d\n", MD->getNameAsString().c_str(),
(int)Index[GD]));
if (MorallyVirtual) {
methods.push_back(rtti);
Index_t AddressPoint = methods.size();
- assert(submethods.size() == Methods.size() && "Method size mismatch!");
-
AppendMethodsToVtable();
// and then the non-virtual bases.
Methods.OverrideMethod(OGD, GD);
- submethods[Index] = m;
ThisAdjustments.erase(Index);
if (MorallyVirtual || VCall.count(OGD)) {
Index_t &idx = VCall[OGD];
BaseReturnTypes.clear();
Methods.clear();
- submethods.clear();
}
void CGVtableInfo::ComputeMethodVtableIndices(const CXXRecordDecl *RD) {