21struct CompilandIdRepr {
27struct CompilandSymIdRepr {
34struct GlobalSymIdRepr {
48struct FieldListMemberIdRepr {
55static_assert(
sizeof(CompilandIdRepr) == 8,
"Invalid structure size!");
56static_assert(
sizeof(CompilandSymIdRepr) == 8,
"Invalid structure size!");
57static_assert(
sizeof(GlobalSymIdRepr) == 8,
"Invalid structure size!");
58static_assert(
sizeof(TypeSymIdRepr) == 8,
"Invalid structure size!");
59static_assert(
sizeof(FieldListMemberIdRepr) == 8,
"Invalid structure size!");
62template <
typename OutT,
typename InT>
static OutT
repr_cast(
const InT &value) {
64 ::memcpy(&result, &value,
sizeof(value));
70 ::memset(&repr, 0,
sizeof(repr));
73 m_repr = repr_cast<uint64_t>(repr);
77 CompilandSymIdRepr repr;
78 ::memset(&repr, 0,
sizeof(repr));
79 repr.modi = csid.
modi;
82 m_repr = repr_cast<uint64_t>(repr);
87 ::memset(&repr, 0,
sizeof(repr));
91 m_repr = repr_cast<uint64_t>(repr);
96 ::memset(&repr, 0,
sizeof(repr));
97 repr.index = tsid.
index.getIndex();
100 m_repr = repr_cast<uint64_t>(repr);
104 FieldListMemberIdRepr repr;
105 ::memset(&repr, 0,
sizeof(repr));
106 repr.index = flmid.
index.getIndex();
107 repr.offset = flmid.
offset;
109 m_repr = repr_cast<uint64_t>(repr);
113 GenericIdRepr
generic = repr_cast<GenericIdRepr>(
m_repr);
119 auto repr = repr_cast<CompilandIdRepr>(
m_repr);
121 result.
modi = repr.modi;
127 auto repr = repr_cast<CompilandSymIdRepr>(
m_repr);
129 result.
modi = repr.modi;
130 result.
offset = repr.offset;
137 auto repr = repr_cast<GlobalSymIdRepr>(
m_repr);
140 result.
offset = repr.offset;
146 auto repr = repr_cast<TypeSymIdRepr>(
m_repr);
148 result.
index.setIndex(repr.index);
155 auto repr = repr_cast<FieldListMemberIdRepr>(
m_repr);
157 result.
index.setIndex(repr.index);
158 result.
offset = repr.offset;
static OutT repr_cast(const InT &value)
PdbGlobalSymId asGlobalSym() const
PdbCompilandId asCompiland() const
PdbCompilandSymId asCompilandSym() const
PdbTypeSymId asTypeSym() const
PdbFieldListMemberId asFieldListMember() const
PdbSymUidKind kind() const
A class that represents a running process on the host machine.
llvm::codeview::TypeIndex index
llvm::codeview::TypeIndex index