2 | 4 | * |
LF_SKIP | index | pad |
index In processing $$TYPES, the index counter is advanced to index count, skipping all intermediate indices. This is the next valid index.
pad Space reserved for incremental compilations. Note that this record is removed by the link/pack utility so there is no requirement for maintaining natural alignment for this record.
2 | 4 | 4*argcount |
LF_ARGLIST | argcount | indices |
argcount Count of number of indices in list
indices List of type indices for describing the formal parameters to a function or method.
2 | 4 | * |
LF_DEFARG | @index | expression |
index Type index of resulting expression
expression Length-prefixed string of supplied default
2 | * | * | ... | * | 2 | * |
leaf | data | pad | ... | pad | leaf | data |
2 | 4 | 4*count |
LF_DERIVED | count | @type |
count Number of types in the list
@type Type indices of the classes that directly inherit from the class that references this type record
2 | 42 | 1 | 1 |
LF_BITFIELD | @type | length | position |
@type Type index of the field
length The length in bits of the object
position Starting position (from bit 0) of the object in the word.
2 | 2 | 2 | 4 | 4 |
LF_MLIST | attribute | pad0 | @type | vtab offset |
optional | ||||
repeated |
attribute Attribute of the member function
pad0 Two bytes of padding for native alignment on type index to follow, must be 0.@type Type index of the procedure record for this occurrence of the function.
vtab offset Present only when property attribute is introducing virtual (optional). Offset in vtable of the class which contains the pointer to the function.
Once a method has been found in this list, its symbol is found by qualifying the method name with its class (T::name) and then searching the symbol table for a symbol by that name with the correct type index. Note that the number of repeats is determined by the subleaf of the field list that references this LF_MLIST record.2 | 42 | 2 | s*rank |
LF_DIMCONU | @index | rank | bound |
@index Type of the index
rank Number of dimensions
bound Constants for the upper bound of each dimension of the array. Each constant is of the size s specified by @index.
2 | 42 | 2 | 2*s*rank |
LF_DIMCONLU | @index | rank | bound |
@index Type of the index
rank Number of dimensions
bound Pairs of constants for the lower and upper bound of each dimension of the array. Each constant is of the size s specified by @index. The ordering is lower bound followed by upper bound for each dimension.
2 | 4 | 4 | rank |
LF_DIMVARU | rank | @index | @var |
rank Number of dimensions
@index Type of the index
@var Array of type index of LF_REFSYM record describing the variable upper bound. If one dimension of the array is variable, then all dimensions must be described using LF_REFSYM records.
2 | 4 | 4 | 2*rank |
LF_DIMVARLU | rank | @index | var |
rank Number of dimensions
@index Type of the index
@var Array of type indices of LF_REFSYM records describing the variable lower and upper bounds. If one dimension of the array is variable, then all dimensions must be described using LF_REFSYM records. The order is lower bound followed by upper bound for each dimension.
2 | * |
LF_REFSYM | sym |
sym Copy of the referenced symbol including the length field