doc: Fix the attribute urlifier after changes to indexing [PR88472]

Recent patches to the GCC manual have merged previously-separate
sections for function, variable, type, and statement attributes, and
created a separate index for attributes instead of putting them in the
concept index.  This reorganization broke the attribute URLifier and its
self-tests.  I've fixed it up and regenerated attr-urls.def.

gcc/ChangeLog
	PR other/88472
	* Makefile.in (ATTR_URLS_HTML_DEPS): Point at new index file.
	* attr-urls.def: Regenerated.
	* gcc-attribute-urlifier.cc (test_attribute_urlifier): Adjust
	URLs to match formatting in the new index.
	* regenerate-attr-urls.py (parse_html_line_attribute_index):
	Update pattern to match formatting in the new combined index.
	Don't segregate entries into separate function/variable/etc
	arrays.
	(INDEX_REL_PATH): Point at the new index file.
	(class TestParsingIndex): Update patterns in self-tests to match
	the current formatting.
This commit is contained in:
Sandra Loosemore
2026-02-21 01:04:14 +00:00
parent b80df4142b
commit 997c9be555
4 changed files with 339 additions and 436 deletions

View File

@@ -3938,7 +3938,7 @@ regenerate-opt-urls-unit-test: $(OPT_URLS_HTML_DEPS)
# Regenerate attr-urls.def from the generated html.
.PHONY: regenerate-attr-urls
ATTR_URLS_HTML_DEPS = $(build_htmldir)/gcc/Concept-and-Symbol-Index.html
ATTR_URLS_HTML_DEPS = $(build_htmldir)/gcc/Attribute-Index.html
regenerate-attr-urls: $(srcdir)/regenerate-attr-urls.py $(ATTR_URLS_HTML_DEPS)
$(srcdir)/regenerate-attr-urls.py $(build_htmldir) $(shell dirname $(srcdir))

View File

@@ -1,384 +1,295 @@
/* Autogenerated by regenerate-attr-urls.py. */
const attr_url_entry enumerator_attrs[] = {
{ "deprecated", "gcc/Enumerator-Attributes.html#index-deprecated-enumerator-attribute", "", 10},
{ "unavailable", "gcc/Enumerator-Attributes.html#index-unavailable-enumerator-attribute", "", 11},
};
const attr_url_entry function_attrs[] = {
{ "OS_main", "gcc/AVR-Function-Attributes.html#index-OS_005fmain-function-attribute_002c-AVR", "AVR", 7},
{ "OS_task", "gcc/AVR-Function-Attributes.html#index-OS_005ftask-function-attribute_002c-AVR", "AVR", 7},
{ "abi_tag", "gcc/C_002b_002b-Attributes.html#index-abi_005ftag-function-attribute", "", 7},
{ "access", "gcc/Common-Function-Attributes.html#index-access-function-attribute", "", 6},
{ "alias", "gcc/Common-Function-Attributes.html#index-alias-function-attribute", "", 5},
{ "aligned", "gcc/Common-Function-Attributes.html#index-aligned-function-attribute", "", 7},
{ "alloc_align", "gcc/Common-Function-Attributes.html#index-alloc_005falign-function-attribute", "", 11},
{ "alloc_size", "gcc/Common-Function-Attributes.html#index-alloc_005fsize-function-attribute", "", 10},
{ "always_inline", "gcc/Common-Function-Attributes.html#index-always_005finline-function-attribute", "", 13},
{ "amdgpu_hsa_kernel", "gcc/AMD-GCN-Function-Attributes.html#index-amdgpu_005fhsa_005fkernel-function-attribute_002c-AMD-GCN", "AMD GCN", 17},
{ "arch=", "gcc/AArch64-Function-Attributes.html#index-arch_003d-function-attribute_002c-AArch64", "AArch64", 5},
{ "arch=", "gcc/ARM-Function-Attributes.html#index-arch_003d-function-attribute_002c-ARM", "ARM", 5},
{ "arch=", "gcc/LoongArch-Function-Attributes.html#index-arch_003d-function-attribute_002c-LoongArch", "LoongArch", 5},
{ "arch=", "gcc/RISC-V-Function-Attributes.html#index-arch_003d-function-attribute_002c-RISC-V", "RISC-V", 5},
{ "artificial", "gcc/Common-Function-Attributes.html#index-artificial-function-attribute", "", 10},
{ "assume_aligned", "gcc/Common-Function-Attributes.html#index-assume_005faligned-function-attribute", "", 14},
{ "bank_switch", "gcc/M32C-Function-Attributes.html#index-bank_005fswitch-function-attribute_002c-M32C", "M32C", 11},
{ "branch-protection", "gcc/AArch64-Function-Attributes.html#index-branch-protection-function-attribute_002c-AArch64", "AArch64", 17},
{ "break_handler", "gcc/MicroBlaze-Function-Attributes.html#index-break_005fhandler-function-attribute_002c-MicroBlaze", "MicroBlaze", 13},
{ "brk_interrupt", "gcc/RL78-Function-Attributes.html#index-brk_005finterrupt-function-attribute_002c-RL78", "RL78", 13},
{ "callee_pop_aggregate_return", "gcc/x86-Function-Attributes.html#index-callee_005fpop_005faggregate_005freturn-function-attribute_002c-x86", "x86", 27},
{ "cdecl", "gcc/x86-Function-Attributes.html#index-cdecl-function-attribute_002c-x86-32", "x86-32", 5},
{ "cf_check", "gcc/x86-Function-Attributes.html#index-cf_005fcheck-function-attribute_002c-x86", "x86", 8},
{ "cmodel=", "gcc/AArch64-Function-Attributes.html#index-cmodel_003d-function-attribute_002c-AArch64", "AArch64", 7},
{ "cmodel=", "gcc/LoongArch-Function-Attributes.html#index-cmodel_003d-function-attribute_002c-LoongArch", "LoongArch", 7},
{ "code_readable", "gcc/MIPS-Function-Attributes.html#index-code_005freadable-function-attribute_002c-MIPS", "MIPS", 13},
{ "cold", "gcc/Common-Function-Attributes.html#index-cold-function-attribute", "", 4},
{ "const", "gcc/Common-Function-Attributes.html#index-const-function-attribute", "", 5},
{ "constructor", "gcc/Common-Function-Attributes.html#index-constructor-function-attribute", "", 11},
{ "copy", "gcc/Common-Function-Attributes.html#index-copy-function-attribute", "", 4},
{ "cpu=", "gcc/AArch64-Function-Attributes.html#index-cpu_003d-function-attribute_002c-AArch64", "AArch64", 4},
{ "cpu=", "gcc/RISC-V-Function-Attributes.html#index-cpu_003d-function-attribute_002c-RISC-V", "RISC-V", 4},
{ "critical", "gcc/MSP430-Function-Attributes.html#index-critical-function-attribute_002c-MSP430", "MSP430", 8},
{ "deprecated", "gcc/Common-Function-Attributes.html#index-deprecated-function-attribute", "", 10},
{ "destructor", "gcc/Common-Function-Attributes.html#index-destructor-function-attribute", "", 10},
{ "disinterrupt", "gcc/Epiphany-Function-Attributes.html#index-disinterrupt-function-attribute_002c-Epiphany", "Epiphany", 12},
{ "dllexport", "gcc/Microsoft-Windows-Function-Attributes.html#index-dllexport-function-attribute", "", 9},
{ "dllimport", "gcc/Microsoft-Windows-Function-Attributes.html#index-dllimport-function-attribute", "", 9},
{ "either", "gcc/MSP430-Function-Attributes.html#index-either-function-attribute_002c-MSP430", "MSP430", 6},
{ "error", "gcc/Common-Function-Attributes.html#index-error-function-attribute", "", 5},
{ "exception", "gcc/NDS32-Function-Attributes.html#index-exception-function-attribute", "", 9},
{ "exception_handler", "gcc/Blackfin-Function-Attributes.html#index-exception_005fhandler-function-attribute", "", 17},
{ "expected_throw", "gcc/Common-Function-Attributes.html#index-expected_005fthrow-function-attribute", "", 14},
{ "externally_visible", "gcc/Common-Function-Attributes.html#index-externally_005fvisible-function-attribute", "", 18},
{ "far", "gcc/MIPS-Function-Attributes.html#index-far-function-attribute_002c-MIPS", "MIPS", 3},
{ "fast_interrupt", "gcc/M32C-Function-Attributes.html#index-fast_005finterrupt-function-attribute_002c-M32C", "M32C", 14},
{ "fast_interrupt", "gcc/MicroBlaze-Function-Attributes.html#index-fast_005finterrupt-function-attribute_002c-MicroBlaze", "MicroBlaze", 14},
{ "fast_interrupt", "gcc/RX-Function-Attributes.html#index-fast_005finterrupt-function-attribute_002c-RX", "RX", 14},
{ "fastcall", "gcc/x86-Function-Attributes.html#index-fastcall-function-attribute_002c-x86-32", "x86-32", 8},
{ "fd_arg", "gcc/Common-Function-Attributes.html#index-fd_005farg-function-attribute", "", 6},
{ "fd_arg_read", "gcc/Common-Function-Attributes.html#index-fd_005farg_005fread-function-attribute", "", 11},
{ "fd_arg_write", "gcc/Common-Function-Attributes.html#index-fd_005farg_005fwrite-function-attribute", "", 12},
{ "fentry_name", "gcc/x86-Function-Attributes.html#index-fentry_005fname-function-attribute_002c-x86", "x86", 11},
{ "fentry_section", "gcc/x86-Function-Attributes.html#index-fentry_005fsection-function-attribute_002c-x86", "x86", 14},
{ "fix-cortex-a53-835769", "gcc/AArch64-Function-Attributes.html#index-fix-cortex-a53-835769-function-attribute_002c-AArch64", "AArch64", 21},
{ "flatten", "gcc/Common-Function-Attributes.html#index-flatten-function-attribute", "", 7},
{ "force_align_arg_pointer", "gcc/x86-Function-Attributes.html#index-force_005falign_005farg_005fpointer-function-attribute_002c-x86", "x86", 23},
{ "format", "gcc/Common-Function-Attributes.html#index-format-function-attribute", "", 6},
{ "format_arg", "gcc/Common-Function-Attributes.html#index-format_005farg-function-attribute", "", 10},
{ "forwarder_section", "gcc/Epiphany-Function-Attributes.html#index-forwarder_005fsection-function-attribute_002c-Epiphany", "Epiphany", 17},
{ "function_return", "gcc/x86-Function-Attributes.html#index-function_005freturn-function-attribute_002c-x86", "x86", 15},
{ "function_vector", "gcc/H8_002f300-Function-Attributes.html#index-function_005fvector-function-attribute_002c-H8_002f300", "H8/300", 15},
{ "function_vector", "gcc/M32C-Function-Attributes.html#index-function_005fvector-function-attribute_002c-M16C_002fM32C", "M16C/M32C", 15},
{ "function_vector", "gcc/SH-Function-Attributes.html#index-function_005fvector-function-attribute_002c-SH", "SH", 15},
{ "general-regs-only", "gcc/AArch64-Function-Attributes.html#index-general-regs-only-function-attribute_002c-AArch64", "AArch64", 17},
{ "general-regs-only", "gcc/ARM-Function-Attributes.html#index-general-regs-only-function-attribute_002c-ARM", "ARM", 17},
{ "gnu_inline", "gcc/Common-Function-Attributes.html#index-gnu_005finline-function-attribute", "", 10},
{ "hot", "gcc/Common-Function-Attributes.html#index-hot-function-attribute", "", 3},
{ "hotpatch", "gcc/S_002f390-Function-Attributes.html#index-hotpatch-function-attribute_002c-S_002f390", "S/390", 8},
{ "ifunc", "gcc/Common-Function-Attributes.html#index-ifunc-function-attribute", "", 5},
{ "indirect_branch", "gcc/x86-Function-Attributes.html#index-indirect_005fbranch-function-attribute_002c-x86", "x86", 15},
{ "indirect_return", "gcc/AArch64-Function-Attributes.html#index-indirect_005freturn-function-attribute_002c-AArch64", "AArch64", 15},
{ "indirect_return", "gcc/x86-Function-Attributes.html#index-indirect_005freturn-function-attribute_002c-x86", "x86", 15},
{ "interrupt", "gcc/ARC-Function-Attributes.html#index-interrupt-function-attribute_002c-ARC", "ARC", 9},
{ "interrupt", "gcc/ARM-Function-Attributes.html#index-interrupt-function-attribute_002c-ARM", "ARM", 9},
{ "interrupt", "gcc/AVR-Function-Attributes.html#index-interrupt-function-attribute_002c-AVR", "AVR", 9},
{ "interrupt", "gcc/C-SKY-Function-Attributes.html#index-interrupt-function-attribute_002c-C-SKY", "C-SKY", 9},
{ "interrupt", "gcc/Common-Function-Attributes.html#index-interrupt-function-attribute", "", 9},
{ "interrupt", "gcc/Epiphany-Function-Attributes.html#index-interrupt-function-attribute_002c-Epiphany", "Epiphany", 9},
{ "interrupt", "gcc/M32C-Function-Attributes.html#index-interrupt-function-attribute_002c-M32C", "M32C", 9},
{ "interrupt", "gcc/M32R_002fD-Function-Attributes.html#index-interrupt-function-attribute_002c-M32R_002fD", "M32R/D", 9},
{ "interrupt", "gcc/MIPS-Function-Attributes.html#index-interrupt-function-attribute_002c-MIPS", "MIPS", 9},
{ "interrupt", "gcc/MSP430-Function-Attributes.html#index-interrupt-function-attribute_002c-MSP430", "MSP430", 9},
{ "interrupt", "gcc/NDS32-Function-Attributes.html#index-interrupt-function-attribute_002c-NDS32", "NDS32", 9},
{ "interrupt", "gcc/RISC-V-Function-Attributes.html#index-interrupt-function-attribute_002c-RISC-V", "RISC-V", 9},
{ "interrupt", "gcc/RL78-Function-Attributes.html#index-interrupt-function-attribute_002c-RL78", "RL78", 9},
{ "interrupt", "gcc/RX-Function-Attributes.html#index-interrupt-function-attribute_002c-RX", "RX", 9},
{ "interrupt", "gcc/V850-Function-Attributes.html#index-interrupt-function-attribute_002c-V850", "V850", 9},
{ "interrupt", "gcc/Visium-Function-Attributes.html#index-interrupt-function-attribute_002c-Visium", "Visium", 9},
{ "interrupt", "gcc/Xstormy16-Function-Attributes.html#index-interrupt-function-attribute_002c-Xstormy16", "Xstormy16", 9},
{ "interrupt", "gcc/m68k-Function-Attributes.html#index-interrupt-function-attribute_002c-m68k", "m68k", 9},
{ "interrupt", "gcc/x86-Function-Attributes.html#index-interrupt-function-attribute_002c-x86", "x86", 9},
{ "interrupt_handler", "gcc/Blackfin-Function-Attributes.html#index-interrupt_005fhandler-function-attribute_002c-Blackfin", "Blackfin", 17},
{ "interrupt_handler", "gcc/Common-Function-Attributes.html#index-interrupt_005fhandler-function-attribute", "", 17},
{ "interrupt_handler", "gcc/H8_002f300-Function-Attributes.html#index-interrupt_005fhandler-function-attribute_002c-H8_002f300", "H8/300", 17},
{ "interrupt_handler", "gcc/MicroBlaze-Function-Attributes.html#index-interrupt_005fhandler-function-attribute_002c-MicroBlaze", "MicroBlaze", 17},
{ "interrupt_handler", "gcc/SH-Function-Attributes.html#index-interrupt_005fhandler-function-attribute_002c-SH", "SH", 17},
{ "interrupt_handler", "gcc/V850-Function-Attributes.html#index-interrupt_005fhandler-function-attribute_002c-V850", "V850", 17},
{ "interrupt_handler", "gcc/m68k-Function-Attributes.html#index-interrupt_005fhandler-function-attribute_002c-m68k", "m68k", 17},
{ "interrupt_thread", "gcc/m68k-Function-Attributes.html#index-interrupt_005fthread-function-attribute_002c-fido", "fido", 16},
{ "isr", "gcc/ARM-Function-Attributes.html#index-isr-function-attribute_002c-ARM", "ARM", 3},
{ "isr", "gcc/C-SKY-Function-Attributes.html#index-isr-function-attribute_002c-C-SKY", "C-SKY", 3},
{ "jli_always", "gcc/ARC-Function-Attributes.html#index-jli_005falways-function-attribute_002c-ARC", "ARC", 10},
{ "jli_fixed", "gcc/ARC-Function-Attributes.html#index-jli_005ffixed-function-attribute_002c-ARC", "ARC", 9},
{ "keep_interrupts_masked", "gcc/MIPS-Function-Attributes.html#index-keep_005finterrupts_005fmasked-function-attribute_002c-MIPS", "MIPS", 22},
{ "kernel", "gcc/Nvidia-PTX-Function-Attributes.html#index-kernel-function-attribute_002c-Nvidia-PTX", "Nvidia PTX", 6},
{ "kspisusp", "gcc/Blackfin-Function-Attributes.html#index-kspisusp-function-attribute_002c-Blackfin", "Blackfin", 8},
{ "l1_text", "gcc/Blackfin-Function-Attributes.html#index-l1_005ftext-function-attribute_002c-Blackfin", "Blackfin", 7},
{ "l2", "gcc/Blackfin-Function-Attributes.html#index-l2-function-attribute_002c-Blackfin", "Blackfin", 2},
{ "lasx", "gcc/LoongArch-Function-Attributes.html#index-lasx-function-attribute_002c-LoongArch", "LoongArch", 4},
{ "leaf", "gcc/Common-Function-Attributes.html#index-leaf-function-attribute", "", 4},
{ "long_call", "gcc/ARC-Function-Attributes.html#index-long_005fcall-function-attribute_002c-ARC", "ARC", 9},
{ "long_call", "gcc/ARM-Function-Attributes.html#index-long_005fcall-function-attribute_002c-ARM", "ARM", 9},
{ "long_call", "gcc/Epiphany-Function-Attributes.html#index-long_005fcall-function-attribute_002c-Epiphany", "Epiphany", 9},
{ "long_call", "gcc/MIPS-Function-Attributes.html#index-long_005fcall-function-attribute_002c-MIPS", "MIPS", 9},
{ "longcall", "gcc/Blackfin-Function-Attributes.html#index-longcall-function-attribute_002c-Blackfin", "Blackfin", 8},
{ "longcall", "gcc/PowerPC-Function-Attributes.html#index-longcall-function-attribute_002c-PowerPC", "PowerPC", 8},
{ "lower", "gcc/MSP430-Function-Attributes.html#index-lower-function-attribute_002c-MSP430", "MSP430", 5},
{ "lsx", "gcc/LoongArch-Function-Attributes.html#index-lsx-function-attribute_002c-LoongArch", "LoongArch", 3},
{ "malloc", "gcc/Common-Function-Attributes.html#index-malloc-function-attribute", "", 6},
{ "medium_call", "gcc/ARC-Function-Attributes.html#index-medium_005fcall-function-attribute_002c-ARC", "ARC", 11},
{ "micromips", "gcc/MIPS-Function-Attributes.html#index-micromips-function-attribute", "", 9},
{ "mips16", "gcc/MIPS-Function-Attributes.html#index-mips16-function-attribute_002c-MIPS", "MIPS", 6},
{ "model", "gcc/M32R_002fD-Function-Attributes.html#index-model-function-attribute_002c-M32R_002fD", "M32R/D", 5},
{ "ms_abi", "gcc/x86-Function-Attributes.html#index-ms_005fabi-function-attribute_002c-x86", "x86", 6},
{ "ms_hook_prologue", "gcc/x86-Function-Attributes.html#index-ms_005fhook_005fprologue-function-attribute_002c-x86", "x86", 16},
{ "naked", "gcc/ARC-Function-Attributes.html#index-naked-function-attribute_002c-ARC", "ARC", 5},
{ "naked", "gcc/ARM-Function-Attributes.html#index-naked-function-attribute_002c-ARM", "ARM", 5},
{ "naked", "gcc/AVR-Function-Attributes.html#index-naked-function-attribute_002c-AVR", "AVR", 5},
{ "naked", "gcc/BPF-Function-Attributes.html#index-naked-function-attribute_002c-BPF", "BPF", 5},
{ "naked", "gcc/C-SKY-Function-Attributes.html#index-naked-function-attribute_002c-C-SKY", "C-SKY", 5},
{ "naked", "gcc/MCORE-Function-Attributes.html#index-naked-function-attribute_002c-MCORE", "MCORE", 5},
{ "naked", "gcc/MSP430-Function-Attributes.html#index-naked-function-attribute_002c-MSP430", "MSP430", 5},
{ "naked", "gcc/NDS32-Function-Attributes.html#index-naked-function-attribute_002c-NDS32", "NDS32", 5},
{ "naked", "gcc/RISC-V-Function-Attributes.html#index-naked-function-attribute_002c-RISC-V", "RISC-V", 5},
{ "naked", "gcc/RL78-Function-Attributes.html#index-naked-function-attribute_002c-RL78", "RL78", 5},
{ "naked", "gcc/RX-Function-Attributes.html#index-naked-function-attribute_002c-RX", "RX", 5},
{ "naked", "gcc/x86-Function-Attributes.html#index-naked-function-attribute_002c-x86", "x86", 5},
{ "near", "gcc/MIPS-Function-Attributes.html#index-near-function-attribute_002c-MIPS", "MIPS", 4},
{ "nested", "gcc/NDS32-Function-Attributes.html#index-nested-function-attribute_002c-NDS32", "NDS32", 6},
{ "nested_ready", "gcc/NDS32-Function-Attributes.html#index-nested_005fready-function-attribute_002c-NDS32", "NDS32", 12},
{ "nesting", "gcc/Blackfin-Function-Attributes.html#index-nesting-function-attribute_002c-Blackfin", "Blackfin", 7},
{ "nmi", "gcc/NDS32-Function-Attributes.html#index-nmi-function-attribute_002c-NDS32", "NDS32", 3},
{ "nmi_handler", "gcc/Blackfin-Function-Attributes.html#index-nmi_005fhandler-function-attribute_002c-Blackfin", "Blackfin", 11},
{ "no_callee_saved_registers", "gcc/x86-Function-Attributes.html#index-no_005fcallee_005fsaved_005fregisters-function-attribute_002c-x86", "x86", 25},
{ "no_caller_saved_registers", "gcc/x86-Function-Attributes.html#index-no_005fcaller_005fsaved_005fregisters-function-attribute_002c-x86", "x86", 25},
{ "no_dangling", "gcc/C_002b_002b-Attributes.html#index-no_005fdangling-function-attribute", "", 11},
{ "no_gccisr", "gcc/AVR-Function-Attributes.html#index-no_005fgccisr-function-attribute_002c-AVR", "AVR", 9},
{ "no_icf", "gcc/Common-Function-Attributes.html#index-no_005ficf-function-attribute", "", 6},
{ "no_instrument_function", "gcc/Common-Function-Attributes.html#index-no_005finstrument_005ffunction-function-attribute", "", 22},
{ "no_profile_instrument_function", "gcc/Common-Function-Attributes.html#index-no_005fprofile_005finstrument_005ffunction-function-attribute", "", 30},
{ "no_reorder", "gcc/Common-Function-Attributes.html#index-no_005freorder-function-attribute", "", 10},
{ "no_sanitize", "gcc/Common-Function-Attributes.html#index-no_005fsanitize-function-attribute", "", 11},
{ "no_sanitize_address", "gcc/Common-Function-Attributes.html#index-no_005fsanitize_005faddress-function-attribute", "", 19},
{ "no_sanitize_coverage", "gcc/Common-Function-Attributes.html#index-no_005fsanitize_005fcoverage-function-attribute", "", 20},
{ "no_sanitize_thread", "gcc/Common-Function-Attributes.html#index-no_005fsanitize_005fthread-function-attribute", "", 18},
{ "no_sanitize_undefined", "gcc/Common-Function-Attributes.html#index-no_005fsanitize_005fundefined-function-attribute", "", 21},
{ "no_split_stack", "gcc/Common-Function-Attributes.html#index-no_005fsplit_005fstack-function-attribute", "", 14},
{ "no_stack_limit", "gcc/Common-Function-Attributes.html#index-no_005fstack_005flimit-function-attribute", "", 14},
{ "no_stack_protector", "gcc/Common-Function-Attributes.html#index-no_005fstack_005fprotector-function-attribute", "", 18},
{ "noblock", "gcc/AVR-Function-Attributes.html#index-noblock-function-attribute_002c-AVR", "AVR", 7},
{ "nocf_check", "gcc/x86-Function-Attributes.html#index-nocf_005fcheck-function-attribute", "", 10},
{ "noclone", "gcc/Common-Function-Attributes.html#index-noclone-function-attribute", "", 7},
{ "nocompression", "gcc/MIPS-Function-Attributes.html#index-nocompression-function-attribute_002c-MIPS", "MIPS", 13},
{ "nodirect_extern_access", "gcc/x86-Function-Attributes.html#index-nodirect_005fextern_005faccess-function-attribute", "", 22},
{ "noinline", "gcc/Common-Function-Attributes.html#index-noinline-function-attribute", "", 8},
{ "noipa", "gcc/Common-Function-Attributes.html#index-noipa-function-attribute", "", 5},
{ "nomicromips", "gcc/MIPS-Function-Attributes.html#index-nomicromips-function-attribute", "", 11},
{ "nomips16", "gcc/MIPS-Function-Attributes.html#index-nomips16-function-attribute_002c-MIPS", "MIPS", 8},
{ "nonnull", "gcc/Common-Function-Attributes.html#index-nonnull-function-attribute", "", 7},
{ "nonnull_if_nonzero", "gcc/Common-Function-Attributes.html#index-nonnull_005fif_005fnonzero-function-attribute", "", 18},
{ "noplt", "gcc/Common-Function-Attributes.html#index-noplt-function-attribute", "", 5},
{ "noreturn", "gcc/Common-Function-Attributes.html#index-noreturn-function-attribute", "", 8},
{ "nosave_low_regs", "gcc/SH-Function-Attributes.html#index-nosave_005flow_005fregs-function-attribute_002c-SH", "SH", 15},
{ "not_nested", "gcc/NDS32-Function-Attributes.html#index-not_005fnested-function-attribute_002c-NDS32", "NDS32", 10},
{ "nothrow", "gcc/Common-Function-Attributes.html#index-nothrow-function-attribute", "", 7},
{ "null_terminated_string_arg", "gcc/Common-Function-Attributes.html#index-null_005fterminated_005fstring_005farg-function-attribute", "", 26},
{ "omit-leaf-frame-pointer", "gcc/AArch64-Function-Attributes.html#index-omit-leaf-frame-pointer-function-attribute_002c-AArch64", "AArch64", 23},
{ "optimize", "gcc/Common-Function-Attributes.html#index-optimize-function-attribute", "", 8},
{ "outline-atomics", "gcc/AArch64-Function-Attributes.html#index-outline-atomics-function-attribute_002c-AArch64", "AArch64", 15},
{ "partial_save", "gcc/NDS32-Function-Attributes.html#index-partial_005fsave-function-attribute_002c-NDS32", "NDS32", 12},
{ "patchable_function_entry", "gcc/Common-Function-Attributes.html#index-patchable_005ffunction_005fentry-function-attribute", "", 24},
{ "pcs", "gcc/ARM-Function-Attributes.html#index-pcs-function-attribute_002c-ARM", "ARM", 3},
{ "prefer-vector-width", "gcc/x86-Function-Attributes.html#index-prefer-vector-width-function-attribute_002c-x86", "x86", 19},
{ "pure", "gcc/Common-Function-Attributes.html#index-pure-function-attribute", "", 4},
{ "reentrant", "gcc/MSP430-Function-Attributes.html#index-reentrant-function-attribute_002c-MSP430", "MSP430", 9},
{ "regparm", "gcc/x86-Function-Attributes.html#index-regparm-function-attribute_002c-x86", "x86", 7},
{ "renesas", "gcc/SH-Function-Attributes.html#index-renesas-function-attribute_002c-SH", "SH", 7},
{ "resbank", "gcc/SH-Function-Attributes.html#index-resbank-function-attribute_002c-SH", "SH", 7},
{ "reset", "gcc/NDS32-Function-Attributes.html#index-reset-function-attribute_002c-NDS32", "NDS32", 5},
{ "retain", "gcc/Common-Function-Attributes.html#index-retain-function-attribute", "", 6},
{ "returns_nonnull", "gcc/Common-Function-Attributes.html#index-returns_005fnonnull-function-attribute", "", 15},
{ "returns_twice", "gcc/Common-Function-Attributes.html#index-returns_005ftwice-function-attribute", "", 13},
{ "riscv_vector_cc", "gcc/RISC-V-Function-Attributes.html#index-riscv_005fvector_005fcc-function-attribute_002c-RISC-V", "RISC-V", 15},
{ "save_all", "gcc/NDS32-Function-Attributes.html#index-save_005fall-function-attribute_002c-NDS32", "NDS32", 8},
{ "save_volatiles", "gcc/MicroBlaze-Function-Attributes.html#index-save_005fvolatiles-function-attribute_002c-MicroBlaze", "MicroBlaze", 14},
{ "saveall", "gcc/Blackfin-Function-Attributes.html#index-saveall-function-attribute_002c-Blackfin", "Blackfin", 7},
{ "saveall", "gcc/H8_002f300-Function-Attributes.html#index-saveall-function-attribute_002c-H8_002f300", "H8/300", 7},
{ "section", "gcc/Common-Function-Attributes.html#index-section-function-attribute", "", 7},
{ "secure_call", "gcc/ARC-Function-Attributes.html#index-secure_005fcall-function-attribute_002c-ARC", "ARC", 11},
{ "sentinel", "gcc/Common-Function-Attributes.html#index-sentinel-function-attribute", "", 8},
{ "short_call", "gcc/ARC-Function-Attributes.html#index-short_005fcall-function-attribute_002c-ARC", "ARC", 10},
{ "short_call", "gcc/ARM-Function-Attributes.html#index-short_005fcall-function-attribute_002c-ARM", "ARM", 10},
{ "short_call", "gcc/Epiphany-Function-Attributes.html#index-short_005fcall-function-attribute_002c-Epiphany", "Epiphany", 10},
{ "short_call", "gcc/MIPS-Function-Attributes.html#index-short_005fcall-function-attribute_002c-MIPS", "MIPS", 10},
{ "shortcall", "gcc/Blackfin-Function-Attributes.html#index-shortcall-function-attribute_002c-Blackfin", "Blackfin", 9},
{ "shortcall", "gcc/PowerPC-Function-Attributes.html#index-shortcall-function-attribute_002c-PowerPC", "PowerPC", 9},
{ "sign-return-address", "gcc/AArch64-Function-Attributes.html#index-sign-return-address-function-attribute_002c-AArch64", "AArch64", 19},
{ "signal", "gcc/AVR-Function-Attributes.html#index-signal-function-attribute_002c-AVR", "AVR", 6},
{ "simd", "gcc/Common-Function-Attributes.html#index-simd-function-attribute", "", 4},
{ "sp_switch", "gcc/SH-Function-Attributes.html#index-sp_005fswitch-function-attribute_002c-SH", "SH", 9},
{ "sseregparm", "gcc/x86-Function-Attributes.html#index-sseregparm-function-attribute_002c-x86", "x86", 10},
{ "stack_protect", "gcc/Common-Function-Attributes.html#index-stack_005fprotect-function-attribute", "", 13},
{ "stdcall", "gcc/x86-Function-Attributes.html#index-stdcall-function-attribute_002c-x86-32", "x86-32", 7},
{ "strict-align", "gcc/AArch64-Function-Attributes.html#index-strict-align-function-attribute_002c-AArch64", "AArch64", 12},
{ "strict-align", "gcc/LoongArch-Function-Attributes.html#index-strict-align-function-attribute_002c-LoongArch", "LoongArch", 12},
{ "symver", "gcc/Common-Function-Attributes.html#index-symver-function-attribute", "", 6},
{ "syscall_linkage", "gcc/IA-64-Function-Attributes.html#index-syscall_005flinkage-function-attribute_002c-IA-64", "IA-64", 15},
{ "sysv_abi", "gcc/x86-Function-Attributes.html#index-sysv_005fabi-function-attribute_002c-x86", "x86", 8},
{ "tainted_args", "gcc/Common-Function-Attributes.html#index-tainted_005fargs-function-attribute", "", 12},
{ "target", "gcc/ARM-Function-Attributes.html#index-target-function-attribute-1", "", 6},
{ "target", "gcc/Common-Function-Attributes.html#index-target-function-attribute", "", 6},
{ "target", "gcc/PowerPC-Function-Attributes.html#index-target-function-attribute-2", "", 6},
{ "target", "gcc/S_002f390-Function-Attributes.html#index-target-function-attribute-3", "", 6},
{ "target", "gcc/x86-Function-Attributes.html#index-target-function-attribute-4", "", 6},
{ "target_clones", "gcc/Common-Function-Attributes.html#index-target_005fclones-function-attribute", "", 13},
{ "thiscall", "gcc/x86-Function-Attributes.html#index-thiscall-function-attribute_002c-x86-32", "x86-32", 8},
{ "tls-dialect=", "gcc/AArch64-Function-Attributes.html#index-tls-dialect_003d-function-attribute_002c-AArch64", "AArch64", 12},
{ "trap_exit", "gcc/SH-Function-Attributes.html#index-trap_005fexit-function-attribute_002c-SH", "SH", 9},
{ "trapa_handler", "gcc/SH-Function-Attributes.html#index-trapa_005fhandler-function-attribute_002c-SH", "SH", 13},
{ "tune=", "gcc/AArch64-Function-Attributes.html#index-tune_003d-function-attribute_002c-AArch64", "AArch64", 5},
{ "tune=", "gcc/LoongArch-Function-Attributes.html#index-tune_003d-function-attribute_002c-LoongArch", "LoongArch", 5},
{ "tune=", "gcc/RISC-V-Function-Attributes.html#index-tune_003d-function-attribute_002c-RISC-V", "RISC-V", 5},
{ "unavailable", "gcc/Common-Function-Attributes.html#index-unavailable-function-attribute", "", 11},
{ "unused", "gcc/Common-Function-Attributes.html#index-unused-function-attribute", "", 6},
{ "upper", "gcc/MSP430-Function-Attributes.html#index-upper-function-attribute_002c-MSP430", "MSP430", 5},
{ "use_debug_exception_return", "gcc/MIPS-Function-Attributes.html#index-use_005fdebug_005fexception_005freturn-function-attribute_002c-MIPS", "MIPS", 26},
{ "use_hazard_barrier_return", "gcc/MIPS-Function-Attributes.html#index-use_005fhazard_005fbarrier_005freturn-function-attribute_002c-MIPS", "MIPS", 25},
{ "use_shadow_register_set", "gcc/MIPS-Function-Attributes.html#index-use_005fshadow_005fregister_005fset-function-attribute_002c-MIPS", "MIPS", 23},
{ "used", "gcc/Common-Function-Attributes.html#index-used-function-attribute", "", 4},
{ "vector", "gcc/RX-Function-Attributes.html#index-vector-function-attribute_002c-RX", "RX", 6},
{ "version_id", "gcc/IA-64-Function-Attributes.html#index-version_005fid-function-attribute_002c-IA-64", "IA-64", 10},
{ "visibility", "gcc/Common-Function-Attributes.html#index-visibility-function-attribute", "", 10},
{ "wakeup", "gcc/MSP430-Function-Attributes.html#index-wakeup-function-attribute_002c-MSP430", "MSP430", 6},
{ "warm", "gcc/NDS32-Function-Attributes.html#index-warm-function-attribute_002c-NDS32", "NDS32", 4},
{ "warn_unused_result", "gcc/Common-Function-Attributes.html#index-warn_005funused_005fresult-function-attribute", "", 18},
{ "warning", "gcc/Common-Function-Attributes.html#index-warning-function-attribute", "", 7},
{ "weak", "gcc/Common-Function-Attributes.html#index-weak-function-attribute", "", 4},
{ "weakref", "gcc/Common-Function-Attributes.html#index-weakref-function-attribute", "", 7},
{ "zero_call_used_regs", "gcc/Common-Function-Attributes.html#index-zero_005fcall_005fused_005fregs-function-attribute", "", 19},
};
const attr_url_entry label_attrs[] = {
{ "cold", "gcc/Label-Attributes.html#index-cold-label-attribute", "", 4},
{ "hot", "gcc/Label-Attributes.html#index-hot-label-attribute", "", 3},
{ "unused", "gcc/Label-Attributes.html#index-unused-label-attribute", "", 6},
};
const attr_url_entry statement_attrs[] = {
{ "assume", "gcc/Statement-Attributes.html#index-assume-statement-attribute", "", 6},
{ "fallthrough", "gcc/Statement-Attributes.html#index-fallthrough-statement-attribute", "", 11},
{ "musttail", "gcc/Statement-Attributes.html#index-musttail-statement-attribute", "", 8},
};
const attr_url_entry type_attrs[] = {
{ "abi_tag", "gcc/C_002b_002b-Attributes.html#index-abi_005ftag-type-attribute", "", 7},
{ "aligned", "gcc/Common-Type-Attributes.html#index-aligned-type-attribute", "", 7},
{ "alloc_size", "gcc/Common-Type-Attributes.html#index-alloc_005fsize-type-attribute", "", 10},
{ "altivec", "gcc/PowerPC-Type-Attributes.html#index-altivec-type-attribute_002c-PowerPC", "PowerPC", 7},
{ "cold", "gcc/C_002b_002b-Attributes.html#index-cold-type-attribute", "", 4},
{ "copy", "gcc/Common-Type-Attributes.html#index-copy-type-attribute", "", 4},
{ "deprecated", "gcc/Common-Type-Attributes.html#index-deprecated-type-attribute", "", 10},
{ "designated_init", "gcc/Common-Type-Attributes.html#index-designated_005finit-type-attribute", "", 15},
{ "flag_enum", "gcc/Common-Type-Attributes.html#index-flag_005fenum-type-attribute", "", 9},
{ "gcc_struct", "gcc/PowerPC-Type-Attributes.html#index-gcc_005fstruct-type-attribute_002c-PowerPC", "PowerPC", 10},
{ "gcc_struct", "gcc/x86-Type-Attributes.html#index-gcc_005fstruct-type-attribute_002c-x86", "x86", 10},
{ "hardbool", "gcc/Common-Type-Attributes.html#index-hardbool-type-attribute", "", 8},
{ "hot", "gcc/C_002b_002b-Attributes.html#index-hot-type-attribute", "", 3},
{ "may_alias", "gcc/Common-Type-Attributes.html#index-may_005falias-type-attribute", "", 9},
{ "mode", "gcc/Common-Type-Attributes.html#index-mode-type-attribute", "", 4},
{ "ms_struct", "gcc/PowerPC-Type-Attributes.html#index-ms_005fstruct-type-attribute_002c-PowerPC", "PowerPC", 9},
{ "ms_struct", "gcc/x86-Type-Attributes.html#index-ms_005fstruct-type-attribute_002c-x86", "x86", 9},
{ "no_dangling", "gcc/C_002b_002b-Attributes.html#index-no_005fdangling-type-attribute", "", 11},
{ "notshared", "gcc/ARM-Type-Attributes.html#index-notshared-type-attribute_002c-ARM", "ARM", 9},
{ "objc_root_class", "gcc/Common-Type-Attributes.html#index-objc_005froot_005fclass-type-attribute", "", 15},
{ "packed", "gcc/Common-Type-Attributes.html#index-packed-type-attribute", "", 6},
{ "preserve_access_index", "gcc/BPF-Type-Attributes.html#index-preserve_005faccess_005findex-type-attribute_002c-BPF", "BPF", 21},
{ "scalar_storage_order", "gcc/Common-Type-Attributes.html#index-scalar_005fstorage_005forder-type-attribute", "", 20},
{ "strub", "gcc/Common-Type-Attributes.html#index-strub-type-attribute", "", 5},
{ "transparent_union", "gcc/Common-Type-Attributes.html#index-transparent_005funion-type-attribute", "", 17},
{ "unavailable", "gcc/Common-Type-Attributes.html#index-unavailable-type-attribute", "", 11},
{ "uncached", "gcc/ARC-Type-Attributes.html#index-uncached-type-attribute_002c-ARC", "ARC", 8},
{ "unused", "gcc/Common-Type-Attributes.html#index-unused-type-attribute", "", 6},
{ "vector_size", "gcc/Common-Type-Attributes.html#index-vector_005fsize-type-attribute", "", 11},
{ "visibility", "gcc/Common-Type-Attributes.html#index-visibility-type-attribute", "", 10},
{ "warn_if_not_aligned", "gcc/Common-Type-Attributes.html#index-warn_005fif_005fnot_005faligned-type-attribute", "", 19},
{ "warn_unused", "gcc/C_002b_002b-Attributes.html#index-warn_005funused-type-attribute", "", 11},
};
const attr_url_entry variable_attrs[] = {
{ "abi_tag", "gcc/C_002b_002b-Attributes.html#index-abi_005ftag-variable-attribute", "", 7},
{ "absdata", "gcc/AVR-Variable-Attributes.html#index-absdata-variable-attribute_002c-AVR", "AVR", 7},
{ "address", "gcc/AVR-Variable-Attributes.html#index-address-variable-attribute_002c-AVR", "AVR", 7},
{ "alias", "gcc/Common-Variable-Attributes.html#index-alias-variable-attribute", "", 5},
{ "aligned", "gcc/Common-Variable-Attributes.html#index-aligned-variable-attribute", "", 7},
{ "alloc_size", "gcc/Common-Variable-Attributes.html#index-alloc_005fsize-variable-attribute", "", 10},
{ "altivec", "gcc/PowerPC-Variable-Attributes.html#index-altivec-variable-attribute_002c-PowerPC", "PowerPC", 7},
{ "aux", "gcc/ARC-Variable-Attributes.html#index-aux-variable-attribute_002c-ARC", "ARC", 3},
{ "below100", "gcc/Xstormy16-Variable-Attributes.html#index-below100-variable-attribute_002c-Xstormy16", "Xstormy16", 8},
{ "cleanup", "gcc/Common-Variable-Attributes.html#index-cleanup-variable-attribute", "", 7},
{ "common", "gcc/Common-Variable-Attributes.html#index-common-variable-attribute", "", 6},
{ "copy", "gcc/Common-Variable-Attributes.html#index-copy-variable-attribute", "", 4},
{ "counted_by", "gcc/Common-Variable-Attributes.html#index-counted_005fby-variable-attribute", "", 10},
{ "deprecated", "gcc/Common-Variable-Attributes.html#index-deprecated-variable-attribute", "", 10},
{ "dllexport", "gcc/Microsoft-Windows-Variable-Attributes.html#index-dllexport-variable-attribute", "", 9},
{ "dllimport", "gcc/Microsoft-Windows-Variable-Attributes.html#index-dllimport-variable-attribute", "", 9},
{ "eightbit_data", "gcc/H8_002f300-Variable-Attributes.html#index-eightbit_005fdata-variable-attribute_002c-H8_002f300", "H8/300", 13},
{ "either", "gcc/MSP430-Variable-Attributes.html#index-either-variable-attribute_002c-MSP430", "MSP430", 6},
{ "gcc_struct", "gcc/PowerPC-Variable-Attributes.html#index-gcc_005fstruct-variable-attribute_002c-PowerPC", "PowerPC", 10},
{ "gcc_struct", "gcc/x86-Variable-Attributes.html#index-gcc_005fstruct-variable-attribute_002c-x86", "x86", 10},
{ "init_priority", "gcc/C_002b_002b-Attributes.html#index-init_005fpriority-variable-attribute", "", 13},
{ "io", "gcc/AVR-Variable-Attributes.html#index-io-variable-attribute_002c-AVR", "AVR", 2},
{ "io_low", "gcc/AVR-Variable-Attributes.html#index-io_005flow-variable-attribute_002c-AVR", "AVR", 6},
{ "l1_data", "gcc/Blackfin-Variable-Attributes.html#index-l1_005fdata-variable-attribute_002c-Blackfin", "Blackfin", 7},
{ "l1_data_A", "gcc/Blackfin-Variable-Attributes.html#index-l1_005fdata_005fA-variable-attribute_002c-Blackfin", "Blackfin", 9},
{ "l1_data_B", "gcc/Blackfin-Variable-Attributes.html#index-l1_005fdata_005fB-variable-attribute_002c-Blackfin", "Blackfin", 9},
{ "l2", "gcc/Blackfin-Variable-Attributes.html#index-l2-variable-attribute_002c-Blackfin", "Blackfin", 2},
{ "lower", "gcc/MSP430-Variable-Attributes.html#index-lower-variable-attribute_002c-MSP430", "MSP430", 5},
{ "mode", "gcc/Common-Variable-Attributes.html#index-mode-variable-attribute", "", 4},
{ "model", "gcc/IA-64-Variable-Attributes.html#index-model-variable-attribute_002c-IA-64", "IA-64", 5},
{ "model", "gcc/LoongArch-Variable-Attributes.html#index-model-variable-attribute_002c-LoongArch", "LoongArch", 5},
{ "model-name", "gcc/M32R_002fD-Variable-Attributes.html#index-model-name-variable-attribute_002c-M32R_002fD", "M32R/D", 10},
{ "ms_struct", "gcc/PowerPC-Variable-Attributes.html#index-ms_005fstruct-variable-attribute_002c-PowerPC", "PowerPC", 9},
{ "ms_struct", "gcc/x86-Variable-Attributes.html#index-ms_005fstruct-variable-attribute_002c-x86", "x86", 9},
{ "no_icf", "gcc/Common-Variable-Attributes.html#index-no_005ficf-variable-attribute", "", 6},
{ "nocommon", "gcc/Common-Variable-Attributes.html#index-nocommon-variable-attribute", "", 8},
{ "noinit", "gcc/Common-Variable-Attributes.html#index-noinit-variable-attribute", "", 6},
{ "nonstring", "gcc/Common-Variable-Attributes.html#index-nonstring-variable-attribute", "", 9},
{ "objc_nullability", "gcc/Common-Variable-Attributes.html#index-objc_005fnullability-variable-attribute", "", 16},
{ "packed", "gcc/Common-Variable-Attributes.html#index-packed-variable-attribute", "", 6},
{ "persistent", "gcc/Common-Variable-Attributes.html#index-persistent-variable-attribute", "", 10},
{ "progmem", "gcc/AVR-Variable-Attributes.html#index-progmem-variable-attribute_002c-AVR", "AVR", 7},
{ "retain", "gcc/Common-Variable-Attributes.html#index-retain-variable-attribute", "", 6},
{ "saddr", "gcc/RL78-Variable-Attributes.html#index-saddr-variable-attribute_002c-RL78", "RL78", 5},
{ "sda", "gcc/V850-Variable-Attributes.html#index-sda-variable-attribute_002c-V850", "V850", 3},
{ "section", "gcc/Common-Variable-Attributes.html#index-section-variable-attribute", "", 7},
{ "selectany", "gcc/Microsoft-Windows-Variable-Attributes.html#index-selectany-variable-attribute", "", 9},
{ "shared", "gcc/Microsoft-Windows-Variable-Attributes.html#index-shared-variable-attribute", "", 6},
{ "shared", "gcc/Nvidia-PTX-Variable-Attributes.html#index-shared-variable-attribute_002c-Nvidia-PTX", "Nvidia PTX", 6},
{ "strict_flex_array", "gcc/Common-Variable-Attributes.html#index-strict_005fflex_005farray-variable-attribute", "", 17},
{ "tda", "gcc/V850-Variable-Attributes.html#index-tda-variable-attribute_002c-V850", "V850", 3},
{ "tiny_data", "gcc/H8_002f300-Variable-Attributes.html#index-tiny_005fdata-variable-attribute_002c-H8_002f300", "H8/300", 9},
{ "tls_model", "gcc/Common-Variable-Attributes.html#index-tls_005fmodel-variable-attribute", "", 9},
{ "unavailable", "gcc/Common-Variable-Attributes.html#index-unavailable-variable-attribute", "", 11},
{ "uninitialized", "gcc/Common-Variable-Attributes.html#index-uninitialized-variable-attribute", "", 13},
{ "unused", "gcc/Common-Variable-Attributes.html#index-unused-variable-attribute", "", 6},
{ "upper", "gcc/MSP430-Variable-Attributes.html#index-upper-variable-attribute_002c-MSP430", "MSP430", 5},
{ "used", "gcc/Common-Variable-Attributes.html#index-used-variable-attribute", "", 4},
{ "vector_size", "gcc/Common-Variable-Attributes.html#index-vector_005fsize-variable-attribute", "", 11},
{ "visibility", "gcc/Common-Variable-Attributes.html#index-visibility-variable-attribute", "", 10},
{ "warn_if_not_aligned", "gcc/Common-Variable-Attributes.html#index-warn_005fif_005fnot_005faligned-variable-attribute", "", 19},
{ "weak", "gcc/Common-Variable-Attributes.html#index-weak-variable-attribute", "", 4},
{ "zda", "gcc/V850-Variable-Attributes.html#index-zda-variable-attribute_002c-V850", "V850", 3},
const attr_url_entry all_attrs[] = {
{ "OS_Task", "gcc/H8_002f300-Attributes.html#index-OS_005fTask_002c-H8_002f300", "H8/300", 7},
{ "OS_main", "gcc/AVR-Attributes.html#index-OS_005fmain_002c-AVR", "AVR", 7},
{ "OS_task", "gcc/AVR-Attributes.html#index-OS_005ftask_002c-AVR", "AVR", 7},
{ "abi_tag", "gcc/C_002b_002b-Attributes.html#index-abi_005ftag", "", 7},
{ "absdata", "gcc/AVR-Attributes.html#index-absdata_002c-AVR", "AVR", 7},
{ "access", "gcc/Common-Attributes.html#index-access", "", 6},
{ "address", "gcc/AVR-Attributes.html#index-address_002c-AVR", "AVR", 7},
{ "alias", "gcc/Common-Attributes.html#index-alias", "", 5},
{ "aligned", "gcc/Common-Attributes.html#index-aligned", "", 7},
{ "alloc_align", "gcc/Common-Attributes.html#index-alloc_005falign", "", 11},
{ "alloc_size", "gcc/Common-Attributes.html#index-alloc_005fsize", "", 10},
{ "altivec", "gcc/PowerPC-Attributes.html#index-altivec_002c-PowerPC", "PowerPC", 7},
{ "always_inline", "gcc/Common-Attributes.html#index-always_005finline", "", 13},
{ "amdgpu_hsa_kernel", "gcc/AMD-GCN-Attributes.html#index-amdgpu_005fhsa_005fkernel_002c-AMD-GCN", "AMD GCN", 17},
{ "arch=", "gcc/ARM-Attributes.html#index-arch_003d_002c-ARM", "ARM", 5},
{ "artificial", "gcc/Common-Attributes.html#index-artificial", "", 10},
{ "assume", "gcc/Common-Attributes.html#index-assume", "", 6},
{ "assume_aligned", "gcc/Common-Attributes.html#index-assume_005faligned", "", 14},
{ "aux", "gcc/ARC-Attributes.html#index-aux_002c-ARC", "ARC", 3},
{ "bank_switch", "gcc/M32C-Attributes.html#index-bank_005fswitch_002c-M32C", "M32C", 11},
{ "below100", "gcc/Xstormy16-Attributes.html#index-below100_002c-Xstormy16", "Xstormy16", 8},
{ "break_handler", "gcc/MicroBlaze-Attributes.html#index-break_005fhandler_002c-MicroBlaze", "MicroBlaze", 13},
{ "brk_interrupt", "gcc/RL78-Attributes.html#index-brk_005finterrupt_002c-RL78", "RL78", 13},
{ "btf_decl_tag", "gcc/Common-Attributes.html#index-btf_005fdecl_005ftag", "", 12},
{ "btf_type_tag", "gcc/Common-Attributes.html#index-btf_005ftype_005ftag", "", 12},
{ "callee_pop_aggregate_return", "gcc/x86-Attributes.html#index-callee_005fpop_005faggregate_005freturn_002c-x86", "x86", 27},
{ "cdecl", "gcc/x86-Attributes.html#index-cdecl_002c-x86-32", "x86-32", 5},
{ "cf_check", "gcc/x86-Attributes.html#index-cf_005fcheck_002c-x86", "x86", 8},
{ "cleanup", "gcc/Common-Attributes.html#index-cleanup", "", 7},
{ "code_readable", "gcc/MIPS-Attributes.html#index-code_005freadable_002c-MIPS", "MIPS", 13},
{ "cold", "gcc/C_002b_002b-Attributes.html#index-cold-1", "", 4},
{ "cold", "gcc/Common-Attributes.html#index-cold", "", 4},
{ "common", "gcc/Common-Attributes.html#index-common", "", 6},
{ "const", "gcc/Common-Attributes.html#index-const", "", 5},
{ "constructor", "gcc/Common-Attributes.html#index-constructor", "", 11},
{ "copy", "gcc/Common-Attributes.html#index-copy", "", 4},
{ "counted_by", "gcc/Common-Attributes.html#index-counted_005fby", "", 10},
{ "critical", "gcc/MSP430-Attributes.html#index-critical_002c-MSP430", "MSP430", 8},
{ "deprecated", "gcc/Common-Attributes.html#index-deprecated", "", 10},
{ "designated_init", "gcc/Common-Attributes.html#index-designated_005finit", "", 15},
{ "destructor", "gcc/Common-Attributes.html#index-destructor", "", 10},
{ "disinterrupt", "gcc/Epiphany-Attributes.html#index-disinterrupt_002c-Epiphany", "Epiphany", 12},
{ "dllexport", "gcc/Microsoft-Windows-Attributes.html#index-dllexport_002c-Microsoft-Windows", "Microsoft Windows", 9},
{ "dllimport", "gcc/Microsoft-Windows-Attributes.html#index-dllimport_002c-Microsoft-Windows", "Microsoft Windows", 9},
{ "eightbit_data", "gcc/H8_002f300-Attributes.html#index-eightbit_005fdata_002c-H8_002f300", "H8/300", 13},
{ "either", "gcc/MSP430-Attributes.html#index-either_002c-MSP430", "MSP430", 6},
{ "error", "gcc/Common-Attributes.html#index-error", "", 5},
{ "exception", "gcc/NDS32-Attributes.html#index-exception_002c-NDS32", "NDS32", 9},
{ "exception_handler", "gcc/Blackfin-Attributes.html#index-exception_005fhandler_002c-Blackfin", "Blackfin", 17},
{ "expected_throw", "gcc/Common-Attributes.html#index-expected_005fthrow", "", 14},
{ "externally_visible", "gcc/Common-Attributes.html#index-externally_005fvisible", "", 18},
{ "fallthrough", "gcc/Common-Attributes.html#index-fallthrough", "", 11},
{ "far", "gcc/MIPS-Attributes.html#index-far_002c-MIPS", "MIPS", 3},
{ "fast_interrupt", "gcc/M32C-Attributes.html#index-fast_005finterrupt_002c-M32C", "M32C", 14},
{ "fast_interrupt", "gcc/MicroBlaze-Attributes.html#index-fast_005finterrupt_002c-MicroBlaze", "MicroBlaze", 14},
{ "fast_interrupt", "gcc/RX-Attributes.html#index-fast_005finterrupt_002c-RX", "RX", 14},
{ "fastcall", "gcc/x86-Attributes.html#index-fastcall_002c-x86-32", "x86-32", 8},
{ "fd_arg", "gcc/Common-Attributes.html#index-fd_005farg", "", 6},
{ "fd_arg_read", "gcc/Common-Attributes.html#index-fd_005farg_005fread", "", 11},
{ "fd_arg_write", "gcc/Common-Attributes.html#index-fd_005farg_005fwrite", "", 12},
{ "fentry_name", "gcc/x86-Attributes.html#index-fentry_005fname_002c-x86", "x86", 11},
{ "fentry_section", "gcc/x86-Attributes.html#index-fentry_005fsection_002c-x86", "x86", 14},
{ "flatten", "gcc/Common-Attributes.html#index-flatten", "", 7},
{ "force_align_arg_pointer", "gcc/x86-Attributes.html#index-force_005falign_005farg_005fpointer_002c-x86", "x86", 23},
{ "format", "gcc/Common-Attributes.html#index-format", "", 6},
{ "format_arg", "gcc/Common-Attributes.html#index-format_005farg", "", 10},
{ "forwarder_section", "gcc/Epiphany-Attributes.html#index-forwarder_005fsection_002c-Epiphany", "Epiphany", 17},
{ "function_return", "gcc/x86-Attributes.html#index-function_005freturn_002c-x86", "x86", 15},
{ "function_vector", "gcc/H8_002f300-Attributes.html#index-function_005fvector_002c-H8_002f300", "H8/300", 15},
{ "function_vector", "gcc/M32C-Attributes.html#index-function_005fvector_002c-M16C_002fM32C", "M16C/M32C", 15},
{ "function_vector", "gcc/SH-Attributes.html#index-function_005fvector_002c-SH", "SH", 15},
{ "gcc_struct", "gcc/PowerPC-Attributes.html#index-gcc_005fstruct_002c-PowerPC", "PowerPC", 10},
{ "gcc_struct", "gcc/x86-Attributes.html#index-gcc_005fstruct_002c-x86", "x86", 10},
{ "general-regs-only", "gcc/ARM-Attributes.html#index-general-regs-only_002c-ARM", "ARM", 17},
{ "gnu_inline", "gcc/Common-Attributes.html#index-gnu_005finline", "", 10},
{ "hardbool", "gcc/Common-Attributes.html#index-hardbool", "", 8},
{ "hot", "gcc/C_002b_002b-Attributes.html#index-hot-1", "", 3},
{ "hot", "gcc/Common-Attributes.html#index-hot", "", 3},
{ "hotpatch", "gcc/S_002f390-Attributes.html#index-hotpatch_002c-S_002f390", "S/390", 8},
{ "ifunc", "gcc/Common-Attributes.html#index-ifunc", "", 5},
{ "indirect_branch", "gcc/x86-Attributes.html#index-indirect_005fbranch_002c-x86", "x86", 15},
{ "indirect_return", "gcc/x86-Attributes.html#index-indirect_005freturn_002c-x86", "x86", 15},
{ "init_priority", "gcc/C_002b_002b-Attributes.html#index-init_005fpriority", "", 13},
{ "interrupt", "gcc/ARC-Attributes.html#index-interrupt_002c-ARC", "ARC", 9},
{ "interrupt", "gcc/ARM-Attributes.html#index-interrupt_002c-ARM", "ARM", 9},
{ "interrupt", "gcc/AVR-Attributes.html#index-interrupt_002c-AVR", "AVR", 9},
{ "interrupt", "gcc/C-SKY-Attributes.html#index-interrupt_002c-C-SKY", "C-SKY", 9},
{ "interrupt", "gcc/Common-Attributes.html#index-interrupt", "", 9},
{ "interrupt", "gcc/Epiphany-Attributes.html#index-interrupt_002c-Epiphany", "Epiphany", 9},
{ "interrupt", "gcc/M32C-Attributes.html#index-interrupt_002c-M32C", "M32C", 9},
{ "interrupt", "gcc/M32R_002fD-Attributes.html#index-interrupt_002c-M32R_002fD", "M32R/D", 9},
{ "interrupt", "gcc/MIPS-Attributes.html#index-interrupt_002c-MIPS", "MIPS", 9},
{ "interrupt", "gcc/MSP430-Attributes.html#index-interrupt_002c-MSP430", "MSP430", 9},
{ "interrupt", "gcc/NDS32-Attributes.html#index-interrupt_002c-NDS32", "NDS32", 9},
{ "interrupt", "gcc/RISC-V-Attributes.html#index-interrupt_002c-RISC-V", "RISC-V", 9},
{ "interrupt", "gcc/RL78-Attributes.html#index-interrupt_002c-RL78", "RL78", 9},
{ "interrupt", "gcc/RX-Attributes.html#index-interrupt_002c-RX", "RX", 9},
{ "interrupt", "gcc/V850-Attributes.html#index-interrupt_002c-V850", "V850", 9},
{ "interrupt", "gcc/Visium-Attributes.html#index-interrupt_002c-Visium", "Visium", 9},
{ "interrupt", "gcc/Xstormy16-Attributes.html#index-interrupt_002c-Xstormy16", "Xstormy16", 9},
{ "interrupt", "gcc/m68k-Attributes.html#index-interrupt_002c-m68k", "m68k", 9},
{ "interrupt", "gcc/x86-Attributes.html#index-interrupt_002c-x86", "x86", 9},
{ "interrupt_handler", "gcc/Blackfin-Attributes.html#index-interrupt_005fhandler_002c-Blackfin", "Blackfin", 17},
{ "interrupt_handler", "gcc/Common-Attributes.html#index-interrupt_005fhandler", "", 17},
{ "interrupt_handler", "gcc/H8_002f300-Attributes.html#index-interrupt_005fhandler_002c-H8_002f300", "H8/300", 17},
{ "interrupt_handler", "gcc/MicroBlaze-Attributes.html#index-interrupt_005fhandler_002c-MicroBlaze", "MicroBlaze", 17},
{ "interrupt_handler", "gcc/SH-Attributes.html#index-interrupt_005fhandler_002c-SH", "SH", 17},
{ "interrupt_handler", "gcc/V850-Attributes.html#index-interrupt_005fhandler_002c-V850", "V850", 17},
{ "interrupt_handler", "gcc/m68k-Attributes.html#index-interrupt_005fhandler_002c-m68k", "m68k", 17},
{ "interrupt_thread", "gcc/m68k-Attributes.html#index-interrupt_005fthread_002c-fido", "fido", 16},
{ "io", "gcc/AVR-Attributes.html#index-io_002c-AVR", "AVR", 2},
{ "io_low", "gcc/AVR-Attributes.html#index-io_005flow_002c-AVR", "AVR", 6},
{ "isr", "gcc/ARM-Attributes.html#index-isr_002c-ARM", "ARM", 3},
{ "isr", "gcc/C-SKY-Attributes.html#index-isr_002c-C-SKY", "C-SKY", 3},
{ "jli_always", "gcc/ARC-Attributes.html#index-jli_005falways_002c-ARC", "ARC", 10},
{ "jli_fixed", "gcc/ARC-Attributes.html#index-jli_005ffixed_002c-ARC", "ARC", 9},
{ "keep_interrupts_masked", "gcc/MIPS-Attributes.html#index-keep_005finterrupts_005fmasked_002c-MIPS", "MIPS", 22},
{ "kernel", "gcc/Nvidia-PTX-Attributes.html#index-kernel_002c-Nvidia-PTX", "Nvidia PTX", 6},
{ "kspisusp", "gcc/Blackfin-Attributes.html#index-kspisusp_002c-Blackfin", "Blackfin", 8},
{ "l1_data", "gcc/Blackfin-Attributes.html#index-l1_005fdata_002c-Blackfin", "Blackfin", 7},
{ "l1_data_A", "gcc/Blackfin-Attributes.html#index-l1_005fdata_005fA_002c-Blackfin", "Blackfin", 9},
{ "l1_data_B", "gcc/Blackfin-Attributes.html#index-l1_005fdata_005fB_002c-Blackfin", "Blackfin", 9},
{ "l1_text", "gcc/Blackfin-Attributes.html#index-l1_005ftext_002c-Blackfin", "Blackfin", 7},
{ "l2", "gcc/Blackfin-Attributes.html#index-l2_002c-Blackfin", "Blackfin", 2},
{ "leaf", "gcc/Common-Attributes.html#index-leaf", "", 4},
{ "long_call", "gcc/ARC-Attributes.html#index-long_005fcall_002c-ARC", "ARC", 9},
{ "long_call", "gcc/ARM-Attributes.html#index-long_005fcall_002c-ARM", "ARM", 9},
{ "long_call", "gcc/Epiphany-Attributes.html#index-long_005fcall_002c-Epiphany", "Epiphany", 9},
{ "long_call", "gcc/MIPS-Attributes.html#index-long_005fcall_002c-MIPS", "MIPS", 9},
{ "longcall", "gcc/Blackfin-Attributes.html#index-longcall_002c-Blackfin", "Blackfin", 8},
{ "longcall", "gcc/PowerPC-Attributes.html#index-longcall_002c-PowerPC", "PowerPC", 8},
{ "lower", "gcc/MSP430-Attributes.html#index-lower_002c-MSP430", "MSP430", 5},
{ "malloc", "gcc/Common-Attributes.html#index-malloc", "", 6},
{ "may_alias", "gcc/Common-Attributes.html#index-may_005falias", "", 9},
{ "medium_call", "gcc/ARC-Attributes.html#index-medium_005fcall_002c-ARC", "ARC", 11},
{ "micromips", "gcc/MIPS-Attributes.html#index-micromips_002c-MIPS", "MIPS", 9},
{ "mips16", "gcc/MIPS-Attributes.html#index-mips16_002c-MIPS", "MIPS", 6},
{ "mode", "gcc/Common-Attributes.html#index-mode", "", 4},
{ "model", "gcc/IA-64-Attributes.html#index-model_002c-IA-64", "IA-64", 5},
{ "model", "gcc/LoongArch-Attributes.html#index-model_002c-LoongArch", "LoongArch", 5},
{ "model", "gcc/M32R_002fD-Attributes.html#index-model_002c-M32R_002fD", "M32R/D", 5},
{ "monitor", "gcc/H8_002f300-Attributes.html#index-monitor_002c-H8_002f300", "H8/300", 7},
{ "ms_abi", "gcc/x86-Attributes.html#index-ms_005fabi_002c-x86", "x86", 6},
{ "ms_hook_prologue", "gcc/x86-Attributes.html#index-ms_005fhook_005fprologue_002c-x86", "x86", 16},
{ "ms_struct", "gcc/PowerPC-Attributes.html#index-ms_005fstruct_002c-PowerPC", "PowerPC", 9},
{ "ms_struct", "gcc/x86-Attributes.html#index-ms_005fstruct_002c-x86", "x86", 9},
{ "musttail", "gcc/Common-Attributes.html#index-musttail", "", 8},
{ "naked", "gcc/Common-Attributes.html#index-naked", "", 5},
{ "near", "gcc/MIPS-Attributes.html#index-near_002c-MIPS", "MIPS", 4},
{ "nested", "gcc/NDS32-Attributes.html#index-nested_002c-NDS32", "NDS32", 6},
{ "nested_ready", "gcc/NDS32-Attributes.html#index-nested_005fready_002c-NDS32", "NDS32", 12},
{ "nesting", "gcc/Blackfin-Attributes.html#index-nesting_002c-Blackfin", "Blackfin", 7},
{ "nmi", "gcc/NDS32-Attributes.html#index-nmi_002c-NDS32", "NDS32", 3},
{ "nmi_handler", "gcc/Blackfin-Attributes.html#index-nmi_005fhandler_002c-Blackfin", "Blackfin", 11},
{ "no_callee_saved_registers", "gcc/x86-Attributes.html#index-no_005fcallee_005fsaved_005fregisters_002c-x86", "x86", 25},
{ "no_caller_saved_registers", "gcc/x86-Attributes.html#index-no_005fcaller_005fsaved_005fregisters_002c-x86", "x86", 25},
{ "no_dangling", "gcc/C_002b_002b-Attributes.html#index-no_005fdangling", "", 11},
{ "no_gccisr", "gcc/AVR-Attributes.html#index-no_005fgccisr_002c-AVR", "AVR", 9},
{ "no_icf", "gcc/Common-Attributes.html#index-no_005ficf", "", 6},
{ "no_instrument_function", "gcc/Common-Attributes.html#index-no_005finstrument_005ffunction", "", 22},
{ "no_reorder", "gcc/Common-Attributes.html#index-no_005freorder", "", 10},
{ "no_sanitize_address", "gcc/Common-Attributes.html#index-no_005fsanitize_005faddress", "", 19},
{ "no_sanitize_thread", "gcc/Common-Attributes.html#index-no_005fsanitize_005fthread", "", 18},
{ "no_sanitize_undefined", "gcc/Common-Attributes.html#index-no_005fsanitize_005fundefined", "", 21},
{ "no_split_stack", "gcc/Common-Attributes.html#index-no_005fsplit_005fstack", "", 14},
{ "no_stack_limit", "gcc/Common-Attributes.html#index-no_005fstack_005flimit", "", 14},
{ "no_stack_protector", "gcc/Common-Attributes.html#index-no_005fstack_005fprotector", "", 18},
{ "noblock", "gcc/AVR-Attributes.html#index-noblock_002c-AVR", "AVR", 7},
{ "nocf_check", "gcc/x86-Attributes.html#index-nocf_005fcheck_002c-x86", "x86", 10},
{ "noclone", "gcc/Common-Attributes.html#index-noclone", "", 7},
{ "nocommon", "gcc/Common-Attributes.html#index-nocommon", "", 8},
{ "nocompression", "gcc/MIPS-Attributes.html#index-nocompression_002c-MIPS", "MIPS", 13},
{ "nodirect_extern_access", "gcc/x86-Attributes.html#index-nodirect_005fextern_005faccess_002c-x86", "x86", 22},
{ "noinit", "gcc/Common-Attributes.html#index-noinit", "", 6},
{ "noinline", "gcc/Common-Attributes.html#index-noinline", "", 8},
{ "noipa", "gcc/Common-Attributes.html#index-noipa", "", 5},
{ "nomicromips", "gcc/MIPS-Attributes.html#index-nomicromips_002c-MIPS", "MIPS", 11},
{ "nomips16", "gcc/MIPS-Attributes.html#index-nomips16_002c-MIPS", "MIPS", 8},
{ "nonnull", "gcc/Common-Attributes.html#index-nonnull", "", 7},
{ "nonnull_if_nonzero", "gcc/Common-Attributes.html#index-nonnull_005fif_005fnonzero", "", 18},
{ "nonstring", "gcc/Common-Attributes.html#index-nonstring", "", 9},
{ "noplt", "gcc/Common-Attributes.html#index-noplt", "", 5},
{ "noreturn", "gcc/Common-Attributes.html#index-noreturn", "", 8},
{ "nosave_low_regs", "gcc/SH-Attributes.html#index-nosave_005flow_005fregs_002c-SH", "SH", 15},
{ "not_nested", "gcc/NDS32-Attributes.html#index-not_005fnested_002c-NDS32", "NDS32", 10},
{ "nothrow", "gcc/Common-Attributes.html#index-nothrow", "", 7},
{ "notshared", "gcc/ARM-Attributes.html#index-notshared_002c-ARM", "ARM", 9},
{ "null_terminated_string_arg", "gcc/Common-Attributes.html#index-null_005fterminated_005fstring_005farg", "", 26},
{ "objc_nullability", "gcc/Common-Attributes.html#index-objc_005fnullability", "", 16},
{ "objc_root_class", "gcc/Common-Attributes.html#index-objc_005froot_005fclass", "", 15},
{ "optimize", "gcc/Common-Attributes.html#index-optimize", "", 8},
{ "packed", "gcc/Common-Attributes.html#index-packed", "", 6},
{ "partial_save", "gcc/NDS32-Attributes.html#index-partial_005fsave_002c-NDS32", "NDS32", 12},
{ "patchable_function_entry", "gcc/Common-Attributes.html#index-patchable_005ffunction_005fentry", "", 24},
{ "pcs", "gcc/ARM-Attributes.html#index-pcs_002c-ARM", "ARM", 3},
{ "persistent", "gcc/Common-Attributes.html#index-persistent", "", 10},
{ "prefer-vector-width", "gcc/x86-Attributes.html#index-prefer-vector-width_002c-x86", "x86", 19},
{ "preserve_access_index", "gcc/BPF-Attributes.html#index-preserve_005faccess_005findex_002c-BPF", "BPF", 21},
{ "preserve_none", "gcc/x86-Attributes.html#index-preserve_005fnone_002c-x86", "x86", 13},
{ "progmem", "gcc/AVR-Attributes.html#index-progmem_002c-AVR", "AVR", 7},
{ "pure", "gcc/Common-Attributes.html#index-pure", "", 4},
{ "reentrant", "gcc/MSP430-Attributes.html#index-reentrant_002c-MSP430", "MSP430", 9},
{ "regparm", "gcc/x86-Attributes.html#index-regparm_002c-x86", "x86", 7},
{ "renesas", "gcc/SH-Attributes.html#index-renesas_002c-SH", "SH", 7},
{ "reproducible", "gcc/Common-Attributes.html#index-reproducible", "", 12},
{ "resbank", "gcc/SH-Attributes.html#index-resbank_002c-SH", "SH", 7},
{ "reset", "gcc/NDS32-Attributes.html#index-reset_002c-NDS32", "NDS32", 5},
{ "retain", "gcc/Common-Attributes.html#index-retain", "", 6},
{ "returns_nonnull", "gcc/Common-Attributes.html#index-returns_005fnonnull", "", 15},
{ "returns_twice", "gcc/Common-Attributes.html#index-returns_005ftwice", "", 13},
{ "riscv_vector_cc", "gcc/RISC-V-Attributes.html#index-riscv_005fvector_005fcc_002c-RISC-V", "RISC-V", 15},
{ "saddr", "gcc/RL78-Attributes.html#index-saddr_002c-RL78", "RL78", 5},
{ "save_all", "gcc/NDS32-Attributes.html#index-save_005fall_002c-NDS32", "NDS32", 8},
{ "save_volatiles", "gcc/MicroBlaze-Attributes.html#index-save_005fvolatiles_002c-MicroBlaze", "MicroBlaze", 14},
{ "saveall", "gcc/Blackfin-Attributes.html#index-saveall_002c-Blackfin", "Blackfin", 7},
{ "saveall", "gcc/H8_002f300-Attributes.html#index-saveall_002c-H8_002f300", "H8/300", 7},
{ "scalar_storage_order", "gcc/Common-Attributes.html#index-scalar_005fstorage_005forder", "", 20},
{ "sda", "gcc/V850-Attributes.html#index-sda_002c-V850", "V850", 3},
{ "section", "gcc/Common-Attributes.html#index-section", "", 7},
{ "secure_call", "gcc/ARC-Attributes.html#index-secure_005fcall_002c-ARC", "ARC", 11},
{ "selectany", "gcc/Microsoft-Windows-Attributes.html#index-selectany_002c-Microsoft-Windows", "Microsoft Windows", 9},
{ "sentinel", "gcc/Common-Attributes.html#index-sentinel", "", 8},
{ "shared", "gcc/Microsoft-Windows-Attributes.html#index-shared_002c-Microsoft-Windows", "Microsoft Windows", 6},
{ "shared", "gcc/Nvidia-PTX-Attributes.html#index-shared_002c-Nvidia-PTX", "Nvidia PTX", 6},
{ "short_call", "gcc/ARC-Attributes.html#index-short_005fcall_002c-ARC", "ARC", 10},
{ "short_call", "gcc/ARM-Attributes.html#index-short_005fcall_002c-ARM", "ARM", 10},
{ "short_call", "gcc/Epiphany-Attributes.html#index-short_005fcall_002c-Epiphany", "Epiphany", 10},
{ "short_call", "gcc/MIPS-Attributes.html#index-short_005fcall_002c-MIPS", "MIPS", 10},
{ "shortcall", "gcc/Blackfin-Attributes.html#index-shortcall_002c-Blackfin", "Blackfin", 9},
{ "shortcall", "gcc/PowerPC-Attributes.html#index-shortcall_002c-PowerPC", "PowerPC", 9},
{ "signal", "gcc/AVR-Attributes.html#index-signal_002c-AVR", "AVR", 6},
{ "simd", "gcc/Common-Attributes.html#index-simd", "", 4},
{ "sp_switch", "gcc/SH-Attributes.html#index-sp_005fswitch_002c-SH", "SH", 9},
{ "sseregparm", "gcc/x86-Attributes.html#index-sseregparm_002c-x86", "x86", 10},
{ "stack_protect", "gcc/Common-Attributes.html#index-stack_005fprotect", "", 13},
{ "stdcall", "gcc/x86-Attributes.html#index-stdcall_002c-x86-32", "x86-32", 7},
{ "strict_flex_array", "gcc/Common-Attributes.html#index-strict_005fflex_005farray", "", 17},
{ "strub", "gcc/Common-Attributes.html#index-strub", "", 5},
{ "symver", "gcc/Common-Attributes.html#index-symver", "", 6},
{ "syscall_linkage", "gcc/IA-64-Attributes.html#index-syscall_005flinkage_002c-IA-64", "IA-64", 15},
{ "sysv_abi", "gcc/x86-Attributes.html#index-sysv_005fabi_002c-x86", "x86", 8},
{ "tainted_args", "gcc/Common-Attributes.html#index-tainted_005fargs", "", 12},
{ "target", "gcc/AArch64-Attributes.html#index-target_002c-AArch64", "AArch64", 6},
{ "target", "gcc/ARM-Attributes.html#index-target_002c-ARM", "ARM", 6},
{ "target", "gcc/Common-Attributes.html#index-target", "", 6},
{ "target", "gcc/LoongArch-Attributes.html#index-target_002c-LoongArch", "LoongArch", 6},
{ "target", "gcc/PowerPC-Attributes.html#index-target_002c-PowerPC", "PowerPC", 6},
{ "target", "gcc/RISC-V-Attributes.html#index-target_002c-RISC-V", "RISC-V", 6},
{ "target", "gcc/S_002f390-Attributes.html#index-target_002c-S_002f390", "S/390", 6},
{ "target", "gcc/x86-Attributes.html#index-target_002c-x86", "x86", 6},
{ "target_clones", "gcc/Common-Attributes.html#index-target_005fclones", "", 13},
{ "target_clones", "gcc/LoongArch-Attributes.html#index-target_005fclones_002c-LoongArch", "LoongArch", 13},
{ "target_version", "gcc/Common-Attributes.html#index-target_005fversion", "", 14},
{ "target_version", "gcc/LoongArch-Attributes.html#index-target_005fversion_002c-LoongArch", "LoongArch", 14},
{ "tda", "gcc/V850-Attributes.html#index-tda_002c-V850", "V850", 3},
{ "thiscall", "gcc/x86-Attributes.html#index-thiscall_002c-x86-32", "x86-32", 8},
{ "tiny_data", "gcc/H8_002f300-Attributes.html#index-tiny_005fdata_002c-H8_002f300", "H8/300", 9},
{ "tls_model", "gcc/Common-Attributes.html#index-tls_005fmodel", "", 9},
{ "transparent_union", "gcc/Common-Attributes.html#index-transparent_005funion", "", 17},
{ "trap_exit", "gcc/SH-Attributes.html#index-trap_005fexit_002c-SH", "SH", 9},
{ "trapa_handler", "gcc/SH-Attributes.html#index-trapa_005fhandler_002c-SH", "SH", 13},
{ "unavailable", "gcc/Common-Attributes.html#index-unavailable", "", 11},
{ "uncached", "gcc/ARC-Attributes.html#index-uncached_002c-ARC", "ARC", 8},
{ "uninitialized", "gcc/Common-Attributes.html#index-uninitialized", "", 13},
{ "unsequenced", "gcc/Common-Attributes.html#index-unsequenced", "", 11},
{ "unused", "gcc/Common-Attributes.html#index-unused", "", 6},
{ "upper", "gcc/MSP430-Attributes.html#index-upper_002c-MSP430", "MSP430", 5},
{ "use_debug_exception_return", "gcc/MIPS-Attributes.html#index-use_005fdebug_005fexception_005freturn_002c-MIPS", "MIPS", 26},
{ "use_hazard_barrier_return", "gcc/MIPS-Attributes.html#index-use_005fhazard_005fbarrier_005freturn_002c-MIPS", "MIPS", 25},
{ "use_shadow_register_set", "gcc/MIPS-Attributes.html#index-use_005fshadow_005fregister_005fset_002c-MIPS", "MIPS", 23},
{ "used", "gcc/Common-Attributes.html#index-used", "", 4},
{ "vector", "gcc/RX-Attributes.html#index-vector_002c-RX", "RX", 6},
{ "vector_size", "gcc/Common-Attributes.html#index-vector_005fsize", "", 11},
{ "version_id", "gcc/IA-64-Attributes.html#index-version_005fid_002c-IA-64", "IA-64", 10},
{ "visibility", "gcc/Common-Attributes.html#index-visibility", "", 10},
{ "wakeup", "gcc/MSP430-Attributes.html#index-wakeup_002c-MSP430", "MSP430", 6},
{ "warm", "gcc/NDS32-Attributes.html#index-warm_002c-NDS32", "NDS32", 4},
{ "warn_unused", "gcc/C_002b_002b-Attributes.html#index-warn_005funused", "", 11},
{ "warn_unused_result", "gcc/Common-Attributes.html#index-warn_005funused_005fresult", "", 18},
{ "warning", "gcc/Common-Attributes.html#index-warning", "", 7},
{ "weak", "gcc/Common-Attributes.html#index-weak", "", 4},
{ "weakref", "gcc/Common-Attributes.html#index-weakref", "", 7},
{ "zda", "gcc/V850-Attributes.html#index-zda_002c-V850", "V850", 3},
{ "zero_call_used_regs", "gcc/Common-Attributes.html#index-zero_005fcall_005fused_005fregs", "", 19},
};
static const struct attr_url_table {
const attr_url_entry *m_table;
const size_t m_table_sz;
} attr_url_tables[] = {
{ enumerator_attrs, ARRAY_SIZE (enumerator_attrs) },
{ function_attrs, ARRAY_SIZE (function_attrs) },
{ label_attrs, ARRAY_SIZE (label_attrs) },
{ statement_attrs, ARRAY_SIZE (statement_attrs) },
{ type_attrs, ARRAY_SIZE (type_attrs) },
{ variable_attrs, ARRAY_SIZE (variable_attrs) },
{ all_attrs, ARRAY_SIZE (all_attrs) },
};

View File

@@ -173,41 +173,29 @@ test_attribute_urlifier ()
/* Examples of function attributes. */
ASSERT_STREQ (u.get_url_suffix_for_quoted_text ("alias").get (),
"gcc/Common-Function-Attributes.html"
"#index-alias-function-attribute");
"gcc/Common-Attributes.html#index-alias");
ASSERT_STREQ (u.get_url_suffix_for_quoted_text
("access(read_write, 2, 3)").get (),
"gcc/Common-Function-Attributes.html"
"#index-access-function-attribute");
"gcc/Common-Attributes.html#index-access");
/* Example of enumerator attribute. */
ASSERT_STREQ (u.get_url_suffix_for_quoted_text ("deprecated").get (),
"gcc/Enumerator-Attributes.html"
"#index-deprecated-enumerator-attribute");
/* We don't yet have an example of a label attribute, since all
label attributes have a matching function attribute of the same
name, which is found first. */
"gcc/Common-Attributes.html#index-deprecated");
/* Example of statement attribute. */
ASSERT_STREQ (u.get_url_suffix_for_quoted_text ("assume").get (),
"gcc/Statement-Attributes.html"
"#index-assume-statement-attribute");
"gcc/Common-Attributes.html#index-assume");
/* Examples of type attributes. */
ASSERT_STREQ (u.get_url_suffix_for_quoted_text ("hardbool").get (),
"gcc/Common-Type-Attributes.html"
"#index-hardbool-type-attribute");
ASSERT_STREQ (u.get_url_suffix_for_quoted_text
("packed").get (),
"gcc/Common-Type-Attributes.html"
"#index-packed-type-attribute");
"gcc/Common-Attributes.html#index-hardbool");
ASSERT_STREQ (u.get_url_suffix_for_quoted_text ("packed").get (),
"gcc/Common-Attributes.html#index-packed");
/* Example of variable attribute. */
ASSERT_STREQ (u.get_url_suffix_for_quoted_text ("nonstring").get (),
"gcc/Common-Variable-Attributes.html"
"#index-nonstring-variable-attribute");
"gcc/Common-Attributes.html#index-nonstring");
/* Example of target-specific attributes.
For example, "interrupt" has many target-specific documentation URLs. */
@@ -217,15 +205,12 @@ test_attribute_urlifier ()
attribute_urlifier u_unrecognized ("not-a-target");
ASSERT_STREQ (u_rl78.get_url_suffix_for_quoted_text ("interrupt").get (),
"gcc/RL78-Function-Attributes.html"
"#index-interrupt-function-attribute_002c-RL78");
"gcc/RL78-Attributes.html#index-interrupt_002c-RL78");
ASSERT_STREQ (u_x86.get_url_suffix_for_quoted_text ("interrupt").get (),
"gcc/x86-Function-Attributes.html"
"#index-interrupt-function-attribute_002c-x86");
"gcc/x86-Attributes.html#index-interrupt_002c-x86");
ASSERT_STREQ (u_unrecognized.get_url_suffix_for_quoted_text
("interrupt").get (),
"gcc/Common-Function-Attributes.html"
"#index-interrupt-function-attribute");
"gcc/Common-Attributes.html#index-interrupt");
}
}

View File

@@ -72,25 +72,28 @@ class Index:
line = line.replace('_002d', '-')
line = line.replace('_002a', '*')
# e.g. <a href="Common-Function-Attributes.html#index-access-function-attribute"><code>access</code> function attribute</a>
# e.g. <a href="MIPS-Function-Attributes.html#index-nocompression-function-attribute_002c-MIPS"><code class="code">nocompression</code> function attribute, MIPS</a>
m = re.search(r'<a href="([\S]+)"><code[^>]*>([\S]+)</code> (\S+) attribute([^<]*)</a>', line)
# e.g. <a href="Common-Attributes.html#index-alias"><code class="code">alias</code></a>
# e.g. <a href="PowerPC-Attributes.html#index-altivec_002c-PowerPC"><code class="code">altivec</code>, PowerPC</a>
# Since the unification of the function/variable/type etc attributes
# into a single list, the "kind" no longer appears in the index
# entry text and is always ignored.
m = re.search(r'<a href="([\S]+)"><code[^>]*>([\S]+)</code>([^<]*)</a>', line)
if not m:
return
if verbose:
print(m.groups())
url_suffix, name, kind, extra_text = m.groups()
url_suffix, name, extra_text = m.groups()
if extra_text.startswith(', '):
extra_text = extra_text[2:]
# Reject anchors where the name contains a paren
# Reject anchors where the name contains a paren (why?)
# e.g. 'target(&quot;3dnowa&quot;)':
if '(' in name:
return
self.add_entry(url_suffix, name, kind, extra_text)
self.add_entry(url_suffix, name, 'all', extra_text)
def generate_file(self, dstpath):
with open(dstpath, 'w') as outf:
@@ -115,78 +118,82 @@ class Index:
outf.write(" { %s_attrs, ARRAY_SIZE (%s_attrs) },\n" % (kind, kind))
outf.write("};\n")
INDEX_REL_PATH = 'gcc/Concept-and-Symbol-Index.html'
INDEX_REL_PATH = 'gcc/Attribute-Index.html'
class TestParsingIndex(unittest.TestCase):
def test_function_attribute(self):
index = Index()
index.parse_html_line_attribute_index('<a href="Common-Function-Attributes.html#index-access-function-attribute"><code>access</code> function attribute</a>')
self.assertEqual(index.entries, [('Common-Function-Attributes.html#index-access-function-attribute',
index.parse_html_line_attribute_index('<a href="Common-Attributes.html#index-access"><code class="code">access</code></a>')
self.assertEqual(index.entries, [('Common-Attributes.html#index-access',
'access',
'function',
'all',
'')])
def test_function_attribute_with_target(self):
index = Index()
index.parse_html_line_attribute_index('<a href="MIPS-Function-Attributes.html#index-nocompression-function-attribute_002c-MIPS"><code class="code">nocompression</code> function attribute, MIPS</a>')
self.assertEqual(index.entries, [('MIPS-Function-Attributes.html#index-nocompression-function-attribute_002c-MIPS',
index.parse_html_line_attribute_index('<a href="MIPS-Attributes.html#index-nocompression_002c-MIPS"><code class="code">nocompression</code>, MIPS</a>')
self.assertEqual(index.entries, [('MIPS-Attributes.html#index-nocompression_002c-MIPS',
'nocompression',
'function',
'all',
'MIPS')])
def test_reject_parens(self):
index = Index()
index.parse_html_line_attribute_index('<a href="x86-Function-Attributes.html#index-target_0028_00223dnow_0022_0029-function-attribute_002c-x86"><code>target(&quot;3dnow&quot;)</code> function attribute, x86</a>')
index.parse_html_line_attribute_index('<a href="x86-Attributes.html#index-target_0028_00223dnow_0022_0029_002c-x86"><code class="code">target(&quot;3dnow&quot;)</code>, x86</a>')
self.assertEqual(len(index.entries), 0)
def test_type_attribute(self):
index = Index()
index.parse_html_line_attribute_index('<a href="Common-Type-Attributes.html#index-aligned-type-attribute"><code>aligned</code> type attribute</a>')
self.assertEqual(index.entries, [('Common-Type-Attributes.html#index-aligned-type-attribute',
index.parse_html_line_attribute_index('<a href="Common-Attributes.html#index-aligned"><code class="code">aligned</code></a>')
self.assertEqual(index.entries, [('Common-Attributes.html#index-aligned',
'aligned',
'type',
'all',
'')])
def test_enumerator_attribute(self):
index = Index()
index.parse_html_line_attribute_index('<a href="Enumerator-Attributes.html#index-deprecated-enumerator-attribute"><code>deprecated</code> enumerator attribute</a>')
self.assertEqual(index.entries, [('Enumerator-Attributes.html#index-deprecated-enumerator-attribute',
index.parse_html_line_attribute_index('<a href="Common-Attributes.html#index-deprecated"><code class="code">deprecated</code></a>')
self.assertEqual(index.entries, [('Common-Attributes.html#index-deprecated',
'deprecated',
'enumerator',
'all',
'')])
def test_label_attribute(self):
index = Index()
index.parse_html_line_attribute_index('<a href="Label-Attributes.html#index-cold-label-attribute"><code>cold</code> label attribute</a>')
self.assertEqual(index.entries, [('Label-Attributes.html#index-cold-label-attribute',
index.parse_html_line_attribute_index('<a href="Common-Attributes.html#index-cold"><code class="code">cold</code></a>')
self.assertEqual(index.entries, [('Common-Attributes.html#index-cold',
'cold',
'label',
'all',
'')])
def test_statement_attribute(self):
index = Index()
index.parse_html_line_attribute_index('<a href="Statement-Attributes.html#index-assume-statement-attribute"><code>assume</code> statement attribute</a>')
self.assertEqual(index.entries, [('Statement-Attributes.html#index-assume-statement-attribute',
index.parse_html_line_attribute_index('<a href="Common-Attributes.html#index-assume"><code class="code">assume</code></a>')
self.assertEqual(index.entries, [('Common-Attributes.html#index-assume',
'assume',
'statement',
'all',
'')])
def test_variable_attribute(self):
index = Index()
index.parse_html_line_attribute_index('<a href="AVR-Variable-Attributes.html#index-absdata-variable-attribute_002c-AVR"><code>absdata</code> variable attribute, AVR</a>')
self.assertEqual(index.entries, [('AVR-Variable-Attributes.html#index-absdata-variable-attribute_002c-AVR',
index.parse_html_line_attribute_index('<a href="AVR-Attributes.html#index-absdata_002c-AVR"><code class="code">absdata</code>, AVR</a>')
self.assertEqual(index.entries, [('AVR-Attributes.html#index-absdata_002c-AVR',
'absdata',
'variable',
'all',
'AVR')])
# Warning, this is fragile and depends on these being the first two
# entries in the HTML index. Adding or removing options may break this!
def test_parse_attribute_index(self):
index = Index()
index.parse_attribute_index(INPUT_HTML_PATH / INDEX_REL_PATH)
self.assertEqual(index.entries_by_kind['enumerator'][0],
('deprecated',
'Enumerator-Attributes.html#index-deprecated-enumerator-attribute',
self.assertEqual(index.entries_by_kind['all'][0],
('abi_tag',
'C_002b_002b-Attributes.html#index-abi_005ftag',
''))
self.assertEqual(index.entries_by_kind['label'][0],
('cold', 'Label-Attributes.html#index-cold-label-attribute', ''))
self.assertEqual(index.entries_by_kind['all'][1],
('absdata',
'AVR-Attributes.html#index-absdata_002c-AVR',
'AVR'))
def main(args):
index = Index()