Вспомогательные элементы таблицы имен
Вспомогательные элементы имеют тот же размер, что и основные, однако их структура зависит от типа имени и класса памяти. Эта зависимость показана в следующей таблице:
Имя | Класс памяти | Тип | Формат вспомогательного элемента | |
d1 | Базовый тип | |||
.file | C_FILE | DT_NON | T_NULL | Имя файла |
.text, .data, .bss | C_STAT | DT_NON | T_NULL | Секция |
Имя структуры,объединения или перечисления | C_STRTAG, C_UNTAG, C_ENTAG | DT_NON | T_NULL | Начало структуры, объединения или перечисления |
.eos | C_EOS | DT_NON | T_NULL | Конец структуры |
Имя функции | C_EXT, C_STAT | DT_FCN | Кроме T_MOE | Функция |
Имя массива | C_AUTO, C_STAT, C_MOS, C_MOU, C_TPDEF | DT_ARR | Кроме T_MOE | Массив |
.bb, .eb | C_BLOCK | DT_NON | T_NULL | Начало и конец блока |
.bf, .ef | C_FCN | DT_NON | T_NULL | Начало и конец функции |
Имя, связанное со структурой, объединением или перечислением | C_AUTO, C_STAT, C_MOS, C_MOU, C_TPDEF | DT_PTR, DT_ARR, DT_NON | T_STRUCT, T_UNION, T_ENUM | Имя, связанное со структурой, объединением или перечислением |
Здесь имя структуры, объединения или перечисления включает также специальные имена .xfake. Если имя удовлетворяет нескольким из перечисленных условий, то его вспомогательный элемент должен иметь формат объединения.
Примечание
Было бы ошибкой полагаться на какие-либо априорные предположения о числе вспомогательных элементов. Число вспомогательных элементов для имени хранится в поле n_numaux соответствующего основного элемента и должно извлекаться только оттуда.
В следующих пунктах описывается структура вспомогательных элементов.