void CVTypeDumperImpl::visitVirtualBaseClass(TypeLeafKind Leaf, VirtualBaseClassRecord &Base) { DictScope S(W, "VirtualBaseClass"); printMemberAttributes(Base.getAccess(), MethodKind::Vanilla, MethodOptions::None); printTypeIndex("BaseType", Base.getBaseType()); printTypeIndex("VBPtrType", Base.getVBPtrType()); W.printHex("VBPtrOffset", Base.getVBPtrOffset()); W.printHex("VBTableIndex", Base.getVTableIndex()); }
Error TypeDumpVisitor::visitKnownMember(CVMemberRecord &CVR, VirtualBaseClassRecord &Base) { printMemberAttributes(Base.getAccess(), MethodKind::Vanilla, MethodOptions::None); printTypeIndex("BaseType", Base.getBaseType()); printTypeIndex("VBPtrType", Base.getVBPtrType()); W->printHex("VBPtrOffset", Base.getVBPtrOffset()); W->printHex("VBTableIndex", Base.getVTableIndex()); return Error::success(); }
Error UdtRecordCompleter::visitKnownMember(CVMemberRecord &cvr, VirtualBaseClassRecord &base) { AddBaseClassForTypeIndex(base.BaseType, base.getAccess()); // FIXME: Handle virtual base offsets. return Error::success(); }