Поддерживаемые 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++ через текущую функцию