void CVTypeDumperImpl::visitBaseClass(TypeLeafKind Leaf, BaseClassRecord &Base) { DictScope S(W, "BaseClass"); printMemberAttributes(Base.getAccess(), MethodKind::Vanilla, MethodOptions::None); printTypeIndex("BaseType", Base.getBaseType()); W.printHex("BaseOffset", Base.getBaseOffset()); }
Error TypeDumpVisitor::visitKnownMember(CVMemberRecord &CVR, BaseClassRecord &Base) { printMemberAttributes(Base.getAccess(), MethodKind::Vanilla, MethodOptions::None); printTypeIndex("BaseType", Base.getBaseType()); W->printHex("BaseOffset", Base.getBaseOffset()); return Error::success(); }
Error UdtRecordCompleter::visitKnownMember(CVMemberRecord &cvr, BaseClassRecord &base) { clang::QualType base_qt = AddBaseClassForTypeIndex(base.Type, base.getAccess()); auto decl = m_ast_builder.clang().GetAsCXXRecordDecl(base_qt.getAsOpaquePtr()); lldbassert(decl); auto offset = clang::CharUnits::fromQuantity(base.getBaseOffset()); m_layout.base_offsets.insert(std::make_pair(decl, offset)); return llvm::Error::success(); }