#include "llvm/DebugInfo/PDB/Native/NativeTypeEnum.h"
#include "llvm/DebugInfo/CodeView/CVTypeVisitor.h"
#include "llvm/DebugInfo/CodeView/LazyRandomTypeCollection.h"
#include "llvm/DebugInfo/CodeView/TypeRecord.h"
#include "llvm/DebugInfo/PDB/Native/NativeSession.h"
#include "llvm/DebugInfo/PDB/Native/NativeSymbolEnumerator.h"
#include "llvm/DebugInfo/PDB/Native/NativeTypeBuiltin.h"
#include "llvm/DebugInfo/PDB/Native/PDBFile.h"
#include "llvm/DebugInfo/PDB/Native/SymbolCache.h"
#include "llvm/DebugInfo/PDB/Native/TpiStream.h"
#include "llvm/DebugInfo/PDB/PDBSymbolTypeBuiltin.h"
#include <cassert>
#include <optional>
usingnamespacellvm;
usingnamespacellvm::codeview;
usingnamespacellvm::pdb;
namespace {
class NativeEnumEnumEnumerators : public IPDBEnumSymbols, TypeVisitorCallbacks { … };
}
NativeEnumEnumEnumerators::NativeEnumEnumEnumerators(
NativeSession &Session, const NativeTypeEnum &ClassParent)
: … { … }
Error NativeEnumEnumEnumerators::visitKnownMember(CVMemberRecord &CVM,
EnumeratorRecord &Record) { … }
Error NativeEnumEnumEnumerators::visitKnownMember(
CVMemberRecord &CVM, ListContinuationRecord &Record) { … }
uint32_t NativeEnumEnumEnumerators::getChildCount() const { … }
std::unique_ptr<PDBSymbol>
NativeEnumEnumEnumerators::getChildAtIndex(uint32_t Index) const { … }
std::unique_ptr<PDBSymbol> NativeEnumEnumEnumerators::getNext() { … }
void NativeEnumEnumEnumerators::reset() { … }
NativeTypeEnum::NativeTypeEnum(NativeSession &Session, SymIndexId Id,
TypeIndex Index, EnumRecord Record)
: … { … }
NativeTypeEnum::NativeTypeEnum(NativeSession &Session, SymIndexId Id,
NativeTypeEnum &UnmodifiedType,
codeview::ModifierRecord Modifier)
: … { … }
NativeTypeEnum::~NativeTypeEnum() = default;
void NativeTypeEnum::dump(raw_ostream &OS, int Indent,
PdbSymbolIdField ShowIdFields,
PdbSymbolIdField RecurseIdFields) const { … }
std::unique_ptr<IPDBEnumSymbols>
NativeTypeEnum::findChildren(PDB_SymType Type) const { … }
PDB_SymType NativeTypeEnum::getSymTag() const { … }
PDB_BuiltinType NativeTypeEnum::getBuiltinType() const { … }
SymIndexId NativeTypeEnum::getUnmodifiedTypeId() const { … }
bool NativeTypeEnum::hasConstructor() const { … }
bool NativeTypeEnum::hasAssignmentOperator() const { … }
bool NativeTypeEnum::hasNestedTypes() const { … }
bool NativeTypeEnum::isIntrinsic() const { … }
bool NativeTypeEnum::hasCastOperator() const { … }
uint64_t NativeTypeEnum::getLength() const { … }
std::string NativeTypeEnum::getName() const { … }
bool NativeTypeEnum::isNested() const { … }
bool NativeTypeEnum::hasOverloadedOperator() const { … }
bool NativeTypeEnum::isPacked() const { … }
bool NativeTypeEnum::isScoped() const { … }
SymIndexId NativeTypeEnum::getTypeId() const { … }
bool NativeTypeEnum::isRefUdt() const { … }
bool NativeTypeEnum::isValueUdt() const { … }
bool NativeTypeEnum::isInterfaceUdt() const { … }
bool NativeTypeEnum::isConstType() const { … }
bool NativeTypeEnum::isVolatileType() const { … }
bool NativeTypeEnum::isUnalignedType() const { … }
const NativeTypeBuiltin &NativeTypeEnum::getUnderlyingBuiltinType() const { … }