# multiple
deprecated
    .tag = .deprecated
    .c23 = true
    .gnu = true
    .declspec = true

fallthrough
    .tag = .fallthrough
    .c23 = true
    .gnu = true

noreturn
    .tag = .@"noreturn"
    .c23 = true
    .gnu = true
    .declspec = true

no_sanitize_address
    .tag = .no_sanitize_address
    .gnu = true
    .declspec = true

noinline
    .tag = .@"noinline"
    .gnu = true
    .declspec = true

selectany
    .tag = .selectany
    .gnu = true
    .declspec = true

# c23 only
nodiscard
    .tag = .nodiscard
    .c23 = true

reproducible
    .tag = .reproducible
    .c23 = true

unsequenced
    .tag = .unsequenced
    .c23 = true

maybe_unused
    .tag = .unused
    .c23 = true

# gnu only
access
    .tag = .access
    .gnu = true

alias
    .tag = .alias
    .gnu = true

aligned
    .tag = .aligned
    .gnu = true

alloc_align
    .tag = .alloc_align
    .gnu = true

alloc_size
    .tag = .alloc_size
    .gnu = true

always_inline
    .tag = .always_inline
    .gnu = true

artificial
    .tag = .artificial
    .gnu = true

assume_aligned
    .tag = .assume_aligned
    .gnu = true

cleanup
    .tag = .cleanup
    .gnu = true

cold
    .tag = .cold
    .gnu = true

common
    .tag = .common
    .gnu = true

const
    .tag = .@"const"
    .gnu = true

constructor
    .tag = .constructor
    .gnu = true

copy
    .tag = .copy
    .gnu = true

designated_init
    .tag = .designated_init
    .gnu = true

destructor
    .tag = .destructor
    .gnu = true

error
    .tag = .@"error"
    .gnu = true

externally_visible
    .tag = .externally_visible
    .gnu = true

flatten
    .tag = .flatten
    .gnu = true

format
    .tag = .format
    .gnu = true

format_arg
    .tag = .format_arg
    .gnu = true

gnu_inline
    .tag = .gnu_inline
    .gnu = true

hot
    .tag = .hot
    .gnu = true

ifunc
    .tag = .ifunc
    .gnu = true

interrupt
    .tag = .interrupt
    .gnu = true

interrupt_handler
    .tag = .interrupt_handler
    .gnu = true

leaf
    .tag = .leaf
    .gnu = true

malloc
    .tag = .malloc
    .gnu = true

may_alias
    .tag = .may_alias
    .gnu = true

mode
    .tag = .mode
    .gnu = true

no_address_safety_analysis
    .tag = .no_address_safety_analysis
    .gnu = true

no_icf
    .tag = .no_icf
    .gnu = true

no_instrument_function
    .tag = .no_instrument_function
    .gnu = true

no_profile_instrument_function
    .tag = .no_profile_instrument_function
    .gnu = true

no_reorder
    .tag = .no_reorder
    .gnu = true

no_sanitize
    .tag = .no_sanitize
    .gnu = true

no_sanitize_coverage
    .tag = .no_sanitize_coverage
    .gnu = true

no_sanitize_thread
    .tag = .no_sanitize_thread
    .gnu = true

no_sanitize_undefined
    .tag = .no_sanitize_undefined
    .gnu = true

no_split_stack
    .tag = .no_split_stack
    .gnu = true

no_stack_limit
    .tag = .no_stack_limit
    .gnu = true

no_stack_protector
    .tag = .no_stack_protector
    .gnu = true

noclone
    .tag = .noclone
    .gnu = true

nocommon
    .tag = .nocommon
    .gnu = true

noinit
    .tag = .noinit
    .gnu = true

noipa
    .tag = .noipa
    .gnu = true

# nonnull
#     .tag = .nonnull
#     .gnu = true

nonstring
    .tag = .nonstring
    .gnu = true

noplt
    .tag = .noplt
    .gnu = true

nothrow
    .tag = .nothrow
    .gnu = true

# optimize
#     .tag = .optimize
#     .gnu = true

packed
    .tag = .@"packed"
    .gnu = true

patchable_function_entry
    .tag = .patchable_function_entry
    .gnu = true

persistent
    .tag = .persistent
    .gnu = true

pure
    .tag = .pure
    .gnu = true

retain
    .tag = .retain
    .gnu = true

returns_nonnull
    .tag = .returns_nonnull
    .gnu = true

returns_twice
    .tag = .returns_twice
    .gnu = true

scalar_storage_order
    .tag = .scalar_storage_order
    .gnu = true

section
    .tag = .section
    .gnu = true

sentinel
    .tag = .sentinel
    .gnu = true

simd
    .tag = .simd
    .gnu = true

single
    .tag = .single
    .gnu = true

stack_protect
    .tag = .stack_protect
    .gnu = true

symver
    .tag = .symver
    .gnu = true

target
    .tag = .target
    .gnu = true

target_clones
    .tag = .target_clones
    .gnu = true

tls_model
    .tag = .tls_model
    .gnu = true

transparent_union
    .tag = .transparent_union
    .gnu = true

unavailable
    .tag = .unavailable
    .gnu = true

uninitialized
    .tag = .uninitialized
    .gnu = true

unsafe_indexable
    .tag = .unsafe_indexable
    .gnu = true

unused
    .tag = .unused
    .gnu = true

used
    .tag = .used
    .gnu = true

vector_size
    .tag = .vector_size
    .gnu = true

visibility
    .tag = .visibility
    .gnu = true

warn_if_not_aligned
    .tag = .warn_if_not_aligned
    .gnu = true

warn_unused_result
    .tag = .warn_unused_result
    .gnu = true

warning
    .tag = .warning
    .gnu = true

weak
    .tag = .weak
    .gnu = true

weakref
    .tag = .weakref
    .gnu = true

zero_call_used_regs
    .tag = .zero_call_used_regs
    .gnu = true

pcs
    .tag = .pcs
    .gnu = true

riscv_vector_cc
    .tag = .riscv_vector_cc
    .gnu = true

aarch64_sve_pcs
    .tag = .aarch64_sve_pcs
    .gnu = true

aarch64_vector_pcs
    .tag = .aarch64_vector_pcs
    .gnu = true

fastcall
    .tag = .fastcall
    .gnu = true

stdcall
    .tag = .stdcall
    .gnu = true

vectorcall
    .tag = .vectorcall
    .gnu = true

cdecl
    .tag = .cdecl
    .gnu = true

thiscall
    .tag = .thiscall
    .gnu = true

sysv_abi
    .tag = .sysv_abi
    .gnu = true

ms_abi
    .tag = .ms_abi
    .gnu = true

internal_linkage
    .tag = .internal_linkage
    .gnu = true

availability
    .tag = .availability
    .gnu = true

# declspec only
align
    .tag = .aligned
    .declspec = true

allocate
    .tag = .allocate
    .declspec = true

allocator
    .tag = .allocator
    .declspec = true

appdomain
    .tag = .appdomain
    .declspec = true

code_seg
    .tag = .code_seg
    .declspec = true

dllexport
    .tag = .dllexport
    .declspec = true

dllimport
    .tag = .dllimport
    .declspec = true

jitintrinsic
    .tag = .jitintrinsic
    .declspec = true

naked
    .tag = .naked
    .declspec = true

noalias
    .tag = .@"noalias"
    .declspec = true

process
    .tag = .process
    .declspec = true

restrict
    .tag = .restrict
    .declspec = true

safebuffers
    .tag = .safebuffers
    .declspec = true

spectre
    .tag = .spectre
    .declspec = true

thread
    .tag = .thread
    .declspec = true

uuid
    .tag = .uuid
    .declspec = true

