Поддерживаемые GNU __attribute__’ы¶
Warning
На данный момент документ находится в процессе написания и является неполным
В данном документе описываются только те __attribute__’ы, которые позаимствованы у gcc. Собственные builtin’ы описаны в статье Поддерживаемые MCST __attribute__’ы
Компилятор номинально совместим с gcc-9.3.0. Здесь мы перечислим ссылки на отдельные пункты из документации по gcc-9.3.0, посвящённые __attribute__’ам, и описанием того, что из всего множества поддержано в lcc
6.33.1 Common Function Attributes
Поддержано с ограничениями:
- always_inline
- В режиме без оптимизаций атрибут игнорируется, т.к. в режиме без оптимизаций inline НЕ поддерживается
- optimize (string, …)
- Поддержаны только следующие опции:
-O0
,-O1
,-O2
,-O3
,-O4
,-Og
,-Ominimal
,-Osize
,-Ofast
-faligned
,-fno-aligned
-fassociative-math
,-fno-associative-math
-fcx-limited-range
,-fno-cx-limited-range
-fext-strict-aliasing
,-fno-ext-strict-aliasing
-ffast
(без-fstdlib
)-ffast-math
-ffinite-math-only
,-fno-finite-math-only
-fforce-inline
-finline-to-small-functions
-floop-apb-conditional-loads
,-fno-loop-apb-conditional-loads
-fmalloc-opt
,-fno-malloc-opt
-fmath-errno
,-fno-math-errno
-fprefetch
,-fno-prefetch
-frestrict-all
-frestrict-params
-frounding-math
,-fno-rounding-math
-fsignaling-nans
,-fno-signaling-nans
-fspec-fp
,-fno-spec-fp
-fstrict-aliasing
,-fno-strict-aliasing
-funsafe-math-optimizations
,-fno-unsafe-math-optimizations
-fgsr
,-fno-gsr
-fdce-fp
,-fno-dce-fp
-fint-divide-opt
,-fno-int-divide-opt
Опции, не попадающие в этот список, но являющиеся поддерживаемыми в компиляторе опциями, начинающимися на -f, молча игнорируются
6.34.1 Common Variable Attributes
Поддержано с ограничениями:
- cleanup (cleanup_function)
- Поддержано только для языка C. Поддержан только вызов функции
cleanup_function
при прямом выходе из функции. НЕ поддержан вызов функцииcleanup_function
при прохождении исключения C++ через текущую функцию