#include "type_t.h"
static const char *const attribute_names[ATTRIBUTE_LAST+1] = {
- [ATTRIBUTE_GNU_CONST] = "const",
- [ATTRIBUTE_GNU_VOLATILE] = "volatile",
+ [ATTRIBUTE_GNU_ALIAS] = "alias",
+ [ATTRIBUTE_GNU_ALIGNED] = "aligned",
+ [ATTRIBUTE_GNU_ALWAYS_INLINE] = "always_inline",
[ATTRIBUTE_GNU_CDECL] = "cdecl",
- [ATTRIBUTE_GNU_STDCALL] = "stdcall",
- [ATTRIBUTE_GNU_FASTCALL] = "fastcall",
+ [ATTRIBUTE_GNU_COMMON] = "common",
+ [ATTRIBUTE_GNU_CONST] = "const",
+ [ATTRIBUTE_GNU_CONSTRUCTOR] = "constructor",
[ATTRIBUTE_GNU_DEPRECATED] = "deprecated",
+ [ATTRIBUTE_GNU_DESTRUCTOR] = "destructor",
+ [ATTRIBUTE_GNU_DLLEXPORT] = "dllexport",
+ [ATTRIBUTE_GNU_DLLIMPORT] = "dllimport",
+ [ATTRIBUTE_GNU_EIGTHBIT_DATA] = "eightbit_data",
+ [ATTRIBUTE_GNU_EXTERNALLY_VISIBLE] = "externally_visible",
+ [ATTRIBUTE_GNU_FAR] = "far",
+ [ATTRIBUTE_GNU_FASTCALL] = "fastcall",
+ [ATTRIBUTE_GNU_FLATTEN] = "flatten",
+ [ATTRIBUTE_GNU_FORMAT_ARG] = "format_arg",
+ [ATTRIBUTE_GNU_FORMAT] = "format",
+ [ATTRIBUTE_GNU_FUNCTION_VECTOR] = "function_vector",
+ [ATTRIBUTE_GNU_GCC_STRUCT] = "gcc_struct",
+ [ATTRIBUTE_GNU_INTERRUPT_HANDLER] = "interrupt_handler",
+ [ATTRIBUTE_GNU_INTERRUPT] = "interrupt",
+ [ATTRIBUTE_GNU_LONGCALL] = "longcall",
+ [ATTRIBUTE_GNU_LONG_CALL] = "long_call",
+ [ATTRIBUTE_GNU_MALLOC] = "malloc",
+ [ATTRIBUTE_GNU_MAY_ALIAS] = "may_alias",
+ [ATTRIBUTE_GNU_MODEL] = "model",
+ [ATTRIBUTE_GNU_MODE] = "mode",
+ [ATTRIBUTE_GNU_MS_STRUCT] = "ms_struct",
+ [ATTRIBUTE_GNU_NAKED] = "naked",
+ [ATTRIBUTE_GNU_NEAR] = "near",
+ [ATTRIBUTE_GNU_NESTING] = "nesting",
+ [ATTRIBUTE_GNU_NMI_HANDLER] = "nmi_handler",
+ [ATTRIBUTE_GNU_NOCOMMON] = "nocommon",
[ATTRIBUTE_GNU_NOINLINE] = "noinline",
- [ATTRIBUTE_GNU_RETURNS_TWICE] = "returns_twice",
+ [ATTRIBUTE_GNU_NO_INSTRUMENT_FUNCTION] = "no_instrument_function",
+ [ATTRIBUTE_GNU_NONNULL] = "nonnull",
[ATTRIBUTE_GNU_NORETURN] = "noreturn",
- [ATTRIBUTE_GNU_NAKED] = "naked",
- [ATTRIBUTE_GNU_PURE] = "pure",
- [ATTRIBUTE_GNU_ALWAYS_INLINE] = "always_inline",
- [ATTRIBUTE_GNU_MALLOC] = "malloc",
- [ATTRIBUTE_GNU_WEAK] = "weak",
- [ATTRIBUTE_GNU_CONSTRUCTOR] = "constructor",
- [ATTRIBUTE_GNU_DESTRUCTOR] = "destructor",
[ATTRIBUTE_GNU_NOTHROW] = "nothrow",
- [ATTRIBUTE_GNU_TRANSPARENT_UNION] = "transparent_union",
- [ATTRIBUTE_GNU_COMMON] = "common",
- [ATTRIBUTE_GNU_NOCOMMON] = "nocommon",
+ [ATTRIBUTE_GNU_NOTSHARED] = "notshared",
[ATTRIBUTE_GNU_PACKED] = "packed",
+ [ATTRIBUTE_GNU_PURE] = "pure",
+ [ATTRIBUTE_GNU_REGPARM] = "regparm",
+ [ATTRIBUTE_GNU_RETURNS_TWICE] = "returns_twice",
+ [ATTRIBUTE_GNU_SAVEALL] = "saveall",
+ [ATTRIBUTE_GNU_SECTION] = "section",
+ [ATTRIBUTE_GNU_SENTINEL] = "sentinel",
[ATTRIBUTE_GNU_SHARED] = "shared",
- [ATTRIBUTE_GNU_NOTSHARED] = "notshared",
- [ATTRIBUTE_GNU_USED] = "used",
- [ATTRIBUTE_GNU_UNUSED] = "unused",
- [ATTRIBUTE_GNU_NO_INSTRUMENT_FUNCTION] = "no_instrument_function",
- [ATTRIBUTE_GNU_WARN_UNUSED_RESULT] = "warn_unused_result",
- [ATTRIBUTE_GNU_LONGCALL] = "longcall",
[ATTRIBUTE_GNU_SHORTCALL] = "shortcall",
- [ATTRIBUTE_GNU_LONG_CALL] = "long_call",
[ATTRIBUTE_GNU_SHORT_CALL] = "short_call",
- [ATTRIBUTE_GNU_FUNCTION_VECTOR] = "function_vector",
- [ATTRIBUTE_GNU_INTERRUPT] = "interrupt",
- [ATTRIBUTE_GNU_INTERRUPT_HANDLER] = "interrupt_handler",
- [ATTRIBUTE_GNU_NMI_HANDLER] = "nmi_handler",
- [ATTRIBUTE_GNU_NESTING] = "nesting",
- [ATTRIBUTE_GNU_NEAR] = "near",
- [ATTRIBUTE_GNU_FAR] = "far",
[ATTRIBUTE_GNU_SIGNAL] = "signal",
- [ATTRIBUTE_GNU_EIGTHBIT_DATA] = "eightbit_data",
- [ATTRIBUTE_GNU_TINY_DATA] = "tiny_data",
- [ATTRIBUTE_GNU_SAVEALL] = "saveall",
- [ATTRIBUTE_GNU_FLATTEN] = "flatten",
+ [ATTRIBUTE_GNU_SP_SWITCH] = "sp_switch",
[ATTRIBUTE_GNU_SSEREGPARM] = "sseregparm",
- [ATTRIBUTE_GNU_EXTERNALLY_VISIBLE] = "externally_visible",
- [ATTRIBUTE_GNU_MAY_ALIAS] = "may_alias",
- [ATTRIBUTE_GNU_MS_STRUCT] = "ms_struct",
- [ATTRIBUTE_GNU_GCC_STRUCT] = "gcc_struct",
- [ATTRIBUTE_GNU_DLLIMPORT] = "dllimport",
- [ATTRIBUTE_GNU_DLLEXPORT] = "dllexport",
- [ATTRIBUTE_GNU_ALIGNED] = "aligned",
- [ATTRIBUTE_GNU_ALIAS] = "alias",
- [ATTRIBUTE_GNU_SECTION] = "section",
- [ATTRIBUTE_GNU_FORMAT] = "format",
- [ATTRIBUTE_GNU_FORMAT_ARG] = "format_arg",
- [ATTRIBUTE_GNU_WEAKREF] = "weakref",
- [ATTRIBUTE_GNU_NONNULL] = "nonnull",
+ [ATTRIBUTE_GNU_STDCALL] = "stdcall",
+ [ATTRIBUTE_GNU_TINY_DATA] = "tiny_data",
[ATTRIBUTE_GNU_TLS_MODEL] = "tls_model",
- [ATTRIBUTE_GNU_VISIBILITY] = "visibility",
- [ATTRIBUTE_GNU_REGPARM] = "regparm",
- [ATTRIBUTE_GNU_MODE] = "mode",
- [ATTRIBUTE_GNU_MODEL] = "model",
+ [ATTRIBUTE_GNU_TRANSPARENT_UNION] = "transparent_union",
[ATTRIBUTE_GNU_TRAP_EXIT] = "trap_exit",
- [ATTRIBUTE_GNU_SP_SWITCH] = "sp_switch",
- [ATTRIBUTE_GNU_SENTINEL] = "sentinel",
+ [ATTRIBUTE_GNU_UNUSED] = "unused",
+ [ATTRIBUTE_GNU_USED] = "used",
+ [ATTRIBUTE_GNU_VISIBILITY] = "visibility",
+ [ATTRIBUTE_GNU_VOLATILE] = "volatile",
+ [ATTRIBUTE_GNU_WARN_UNUSED_RESULT] = "warn_unused_result",
+ [ATTRIBUTE_GNU_WEAKREF] = "weakref",
+ [ATTRIBUTE_GNU_WEAK] = "weak",
[ATTRIBUTE_MS_ALIGN] = "align",
[ATTRIBUTE_MS_ALLOCATE] = "allocate",
- [ATTRIBUTE_MS_DLLIMPORT] = "dllimport",
+ [ATTRIBUTE_MS_DEPRECATED] = "deprecated",
[ATTRIBUTE_MS_DLLEXPORT] = "dllexport",
+ [ATTRIBUTE_MS_DLLIMPORT] = "dllimport",
[ATTRIBUTE_MS_NAKED] = "naked",
+ [ATTRIBUTE_MS_NOALIAS] = "noalias",
[ATTRIBUTE_MS_NOINLINE] = "noinline",
- [ATTRIBUTE_MS_RETURNS_TWICE] = "returns_twice",
[ATTRIBUTE_MS_NORETURN] = "noreturn",
[ATTRIBUTE_MS_NOTHROW] = "nothrow",
[ATTRIBUTE_MS_NOVTABLE] = "novtable",
[ATTRIBUTE_MS_PROPERTY] = "property",
+ [ATTRIBUTE_MS_RESTRICT] = "restrict",
+ [ATTRIBUTE_MS_RETURNS_TWICE] = "returns_twice",
[ATTRIBUTE_MS_SELECTANY] = "selectany",
[ATTRIBUTE_MS_THREAD] = "thread",
[ATTRIBUTE_MS_UUID] = "uuid",
- [ATTRIBUTE_MS_DEPRECATED] = "deprecated",
- [ATTRIBUTE_MS_RESTRICT] = "restrict",
- [ATTRIBUTE_MS_NOALIAS] = "noalias",
};
const char *get_attribute_name(attribute_kind_t kind)
ATTRIBUTE_ERROR,
ATTRIBUTE_UNKNOWN,
ATTRIBUTE_GNU_FIRST,
- ATTRIBUTE_GNU_CONST = ATTRIBUTE_GNU_FIRST,
- ATTRIBUTE_GNU_VOLATILE,
+ ATTRIBUTE_GNU_ALIAS = ATTRIBUTE_GNU_FIRST,
+ ATTRIBUTE_GNU_ALIGNED,
+ ATTRIBUTE_GNU_ALWAYS_INLINE,
+ ATTRIBUTE_GNU_ASM,
ATTRIBUTE_GNU_CDECL,
- ATTRIBUTE_GNU_STDCALL,
- ATTRIBUTE_GNU_FASTCALL,
+ ATTRIBUTE_GNU_COMMON,
+ ATTRIBUTE_GNU_CONST,
+ ATTRIBUTE_GNU_CONSTRUCTOR,
ATTRIBUTE_GNU_DEPRECATED,
+ ATTRIBUTE_GNU_DESTRUCTOR,
+ ATTRIBUTE_GNU_DLLEXPORT,
+ ATTRIBUTE_GNU_DLLIMPORT,
+ ATTRIBUTE_GNU_EIGTHBIT_DATA,
+ ATTRIBUTE_GNU_EXTERNALLY_VISIBLE,
+ ATTRIBUTE_GNU_FAR,
+ ATTRIBUTE_GNU_FASTCALL,
+ ATTRIBUTE_GNU_FLATTEN,
+ ATTRIBUTE_GNU_FORMAT,
+ ATTRIBUTE_GNU_FORMAT_ARG,
+ ATTRIBUTE_GNU_FUNCTION_VECTOR,
+ ATTRIBUTE_GNU_GCC_STRUCT,
+ ATTRIBUTE_GNU_INTERRUPT,
+ ATTRIBUTE_GNU_INTERRUPT_HANDLER,
+ ATTRIBUTE_GNU_LONGCALL,
+ ATTRIBUTE_GNU_LONG_CALL,
+ ATTRIBUTE_GNU_MALLOC,
+ ATTRIBUTE_GNU_MAY_ALIAS,
+ ATTRIBUTE_GNU_MODE,
+ ATTRIBUTE_GNU_MODEL,
+ ATTRIBUTE_GNU_MS_STRUCT,
+ ATTRIBUTE_GNU_NAKED,
+ ATTRIBUTE_GNU_NEAR,
+ ATTRIBUTE_GNU_NESTING,
+ ATTRIBUTE_GNU_NMI_HANDLER,
+ ATTRIBUTE_GNU_NOCOMMON,
ATTRIBUTE_GNU_NOINLINE,
- ATTRIBUTE_GNU_RETURNS_TWICE,
+ ATTRIBUTE_GNU_NO_INSTRUMENT_FUNCTION,
+ ATTRIBUTE_GNU_NONNULL,
ATTRIBUTE_GNU_NORETURN,
- ATTRIBUTE_GNU_NAKED,
- ATTRIBUTE_GNU_PURE,
- ATTRIBUTE_GNU_ALWAYS_INLINE,
- ATTRIBUTE_GNU_MALLOC,
- ATTRIBUTE_GNU_WEAK,
- ATTRIBUTE_GNU_CONSTRUCTOR,
- ATTRIBUTE_GNU_DESTRUCTOR,
ATTRIBUTE_GNU_NOTHROW,
- ATTRIBUTE_GNU_TRANSPARENT_UNION,
- ATTRIBUTE_GNU_COMMON,
- ATTRIBUTE_GNU_NOCOMMON,
+ ATTRIBUTE_GNU_NOTSHARED,
ATTRIBUTE_GNU_PACKED,
+ ATTRIBUTE_GNU_PURE,
+ ATTRIBUTE_GNU_REGPARM,
+ ATTRIBUTE_GNU_RETURNS_TWICE,
+ ATTRIBUTE_GNU_RETURN_TWICE,
+ ATTRIBUTE_GNU_SAVEALL,
+ ATTRIBUTE_GNU_SECTION,
+ ATTRIBUTE_GNU_SENTINEL,
ATTRIBUTE_GNU_SHARED,
- ATTRIBUTE_GNU_NOTSHARED,
- ATTRIBUTE_GNU_USED,
- ATTRIBUTE_GNU_UNUSED,
- ATTRIBUTE_GNU_NO_INSTRUMENT_FUNCTION,
- ATTRIBUTE_GNU_WARN_UNUSED_RESULT,
- ATTRIBUTE_GNU_LONGCALL,
ATTRIBUTE_GNU_SHORTCALL,
- ATTRIBUTE_GNU_LONG_CALL,
ATTRIBUTE_GNU_SHORT_CALL,
- ATTRIBUTE_GNU_FUNCTION_VECTOR,
- ATTRIBUTE_GNU_INTERRUPT,
- ATTRIBUTE_GNU_INTERRUPT_HANDLER,
- ATTRIBUTE_GNU_NMI_HANDLER,
- ATTRIBUTE_GNU_NESTING,
- ATTRIBUTE_GNU_NEAR,
- ATTRIBUTE_GNU_FAR,
ATTRIBUTE_GNU_SIGNAL,
- ATTRIBUTE_GNU_EIGTHBIT_DATA,
- ATTRIBUTE_GNU_TINY_DATA,
- ATTRIBUTE_GNU_SAVEALL,
- ATTRIBUTE_GNU_FLATTEN,
+ ATTRIBUTE_GNU_SP_SWITCH,
ATTRIBUTE_GNU_SSEREGPARM,
- ATTRIBUTE_GNU_EXTERNALLY_VISIBLE,
- ATTRIBUTE_GNU_RETURN_TWICE,
- ATTRIBUTE_GNU_MAY_ALIAS,
- ATTRIBUTE_GNU_MS_STRUCT,
- ATTRIBUTE_GNU_GCC_STRUCT,
- ATTRIBUTE_GNU_DLLIMPORT,
- ATTRIBUTE_GNU_DLLEXPORT,
- ATTRIBUTE_GNU_ALIGNED,
- ATTRIBUTE_GNU_ALIAS,
- ATTRIBUTE_GNU_SECTION,
- ATTRIBUTE_GNU_FORMAT,
- ATTRIBUTE_GNU_FORMAT_ARG,
- ATTRIBUTE_GNU_WEAKREF,
- ATTRIBUTE_GNU_NONNULL,
+ ATTRIBUTE_GNU_STDCALL,
+ ATTRIBUTE_GNU_TINY_DATA,
ATTRIBUTE_GNU_TLS_MODEL,
- ATTRIBUTE_GNU_VISIBILITY,
- ATTRIBUTE_GNU_REGPARM,
- ATTRIBUTE_GNU_MODEL,
- ATTRIBUTE_GNU_MODE,
+ ATTRIBUTE_GNU_TRANSPARENT_UNION,
ATTRIBUTE_GNU_TRAP_EXIT,
- ATTRIBUTE_GNU_SP_SWITCH,
- ATTRIBUTE_GNU_SENTINEL,
- ATTRIBUTE_GNU_ASM,
- ATTRIBUTE_GNU_LAST = ATTRIBUTE_GNU_ASM,
+ ATTRIBUTE_GNU_UNUSED,
+ ATTRIBUTE_GNU_USED,
+ ATTRIBUTE_GNU_VISIBILITY,
+ ATTRIBUTE_GNU_VOLATILE,
+ ATTRIBUTE_GNU_WARN_UNUSED_RESULT,
+ ATTRIBUTE_GNU_WEAK,
+ ATTRIBUTE_GNU_WEAKREF,
+ ATTRIBUTE_GNU_LAST = ATTRIBUTE_GNU_WEAKREF,
ATTRIBUTE_MS_FIRST,
- ATTRIBUTE_MS_BASED = ATTRIBUTE_MS_FIRST,
- ATTRIBUTE_MS_ALIGN,
+ ATTRIBUTE_MS_ALIGN = ATTRIBUTE_MS_FIRST,
ATTRIBUTE_MS_ALLOCATE,
+ ATTRIBUTE_MS_BASED,
ATTRIBUTE_MS_CDECL,
- ATTRIBUTE_MS_FASTCALL,
- ATTRIBUTE_MS_STDCALL,
- ATTRIBUTE_MS_THISCALL,
- ATTRIBUTE_MS_RESTRICT,
- ATTRIBUTE_MS_DLLIMPORT,
+ ATTRIBUTE_MS_DEPRECATED,
ATTRIBUTE_MS_DLLEXPORT,
- ATTRIBUTE_MS_THREAD,
- ATTRIBUTE_MS_NAKED,
+ ATTRIBUTE_MS_DLLIMPORT,
+ ATTRIBUTE_MS_FASTCALL,
ATTRIBUTE_MS_FORCEINLINE,
+ ATTRIBUTE_MS_NAKED,
+ ATTRIBUTE_MS_NOALIAS,
ATTRIBUTE_MS_NOINLINE,
- ATTRIBUTE_MS_RETURNS_TWICE,
ATTRIBUTE_MS_NORETURN,
ATTRIBUTE_MS_NOTHROW,
ATTRIBUTE_MS_NOVTABLE,
ATTRIBUTE_MS_PROPERTY,
+ ATTRIBUTE_MS_RESTRICT,
+ ATTRIBUTE_MS_RETURNS_TWICE,
ATTRIBUTE_MS_SELECTANY,
+ ATTRIBUTE_MS_STDCALL,
+ ATTRIBUTE_MS_THISCALL,
+ ATTRIBUTE_MS_THREAD,
ATTRIBUTE_MS_UUID,
- ATTRIBUTE_MS_DEPRECATED,
- ATTRIBUTE_MS_NOALIAS,
- ATTRIBUTE_MS_LAST = ATTRIBUTE_MS_NOALIAS,
+ ATTRIBUTE_MS_LAST = ATTRIBUTE_MS_UUID,
ATTRIBUTE_LAST = ATTRIBUTE_MS_LAST
} attribute_kind_t;