Structs§
- Split128 🔒
- Variant
Field 🔒Info - Information about a single field of the top-level DW_TAG_union_type.
Constants§
- ASSOC_
CONST_ 🔒DISC R128_ BEGIN_ HI - ASSOC_
CONST_ 🔒DISC R128_ BEGIN_ LO - ASSOC_
CONST_ 🔒DISC R128_ END_ HI - ASSOC_
CONST_ 🔒DISC R128_ END_ LO - ASSOC_
CONST_ 🔒DISC R128_ EXACT_ HI - ASSOC_
CONST_ 🔒DISC R128_ EXACT_ LO - ASSOC_
CONST_ 🔒DISCR_ BEGIN - ASSOC_
CONST_ 🔒DISCR_ END - ASSOC_
CONST_ 🔒DISCR_ EXACT - ASSOC_
CONST_ 🔒DISCR_ NAME - SINGLE_
VARIANT_ 🔒VIRTUAL_ DISR - TAG_
FIELD_ 🔒NAME - TAG_
FIELD_ 🔒NAME_ 128_ HI - TAG_
FIELD_ 🔒NAME_ 128_ LO
Functions§
- build_
coroutine_ 🔒di_ node - A coroutine debuginfo node looks the same as a that of an enum type.
- build_
enum_ 🔒type_ di_ node - In CPP-like mode, we generate a union with a field for each variant and an explicit tag field. The field of each variant has a struct type that encodes the discriminant of the variant and it’s data layout. The union also has a nested enumeration type that is only used for encoding variant names in an efficient way. Its enumerator values do not correspond to the enum’s discriminant values. It’s roughly equivalent to the following C/C++ code:
- build_
single_ 🔒variant_ union_ fields - build_
union_ 🔒fields_ for_ direct_ tag_ coroutine - build_
union_ 🔒fields_ for_ direct_ tag_ enum_ or_ coroutine - This is a helper function shared between enums and coroutines that makes sure fields have the expect names.
- build_
union_ 🔒fields_ for_ enum - build_
variant_ 🔒names_ type_ di_ node - This function builds a DW_AT_enumeration_type that contains an entry for each variant. Note that this has nothing to do with the discriminant. The numeric value of each enumerator corresponds to the variant index. The type is only used for efficiently encoding the name of each variant in debuginfo.
- build_
variant_ 🔒struct_ wrapper_ type_ di_ node - split_
128 🔒 - variant_
names_ 🔒enum_ base_ type - variant_
struct_ 🔒wrapper_ type_ name - variant_
union_ 🔒field_ name