Spec-Zone.ru › GCC 14

8.3.1 Кодировка типов устаревшего формата

К сожалению, в прошлом GCC содержал ряд ошибок в коде кодирования. Среда выполнения NeXT ожидает, что GCC будет выводить кодировки типов в этом историческом формате (совместимом с GCC-3.3), поэтому при использовании среды выполнения NeXT GCC преднамеренно введет ряд неправильных кодировок:

  • квалификатор «только для чтения» указанного объекта выводится перед символом ‘^’. Квалификатор «только для чтения» самого указателя игнорируется, за исключением случаев, когда это псевдоним типа. Кроме того, символ ’r’ выводится только для внешнего типа.
  • 32-битные long кодируются как ’l’ или ’L’, но не всегда. Для псевдонимов типов компилятор использует ’i’ или ’I’ вместо этого, если кодируется поле структуры или указатель.
  • enum всегда кодируются как ’i’ (int), даже если они на самом деле беззнаковые или long.

Кроме того, среда выполнения NeXT использует другую кодировку для полей бит. Она кодирует их как b, за которым следует размер, без смещения бита или типа базового поля.

© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-13.3.0/gcc/Legacy-type-encoding.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API