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