• Top
    • Documentation
      • Xdoc
        • Undocumented
        • Save
        • Defsection
        • Markup
        • Preprocessor
        • Terminal
        • Emacs-links
        • Entities
        • Defxdoc
        • Katex-integration
        • Constructors
        • Defxdoc+
        • Save-rendered
        • Add-resource-directory
        • Testing
        • Order-subtopics
        • Save-rendered-event
        • Archive-matching-topics
        • Archive-xdoc
        • Xdoc-extend
        • Set-default-parents
        • Missing-parents
          • Keywords
            • *keywords-gcc-c17*
              • *keywords-gcc-c23*
              • *keywords-c23*
              • *keywords-c17*
            • Movbe-reverse-bytes
            • Missing-parents-test
          • Defpointer
          • Defxdoc-raw
          • Xdoc-tests
          • Xdoc-prepend
          • Defsection-progn
          • Gen-xdoc-for-file
        • ACL2-doc
        • Recursion-and-induction
        • Loop$-primer
        • Operational-semantics
        • Pointers
        • Doc
        • Documentation-copyright
        • Publications
        • Course-materials
        • Args
        • ACL2-doc-summary
        • Finding-documentation
        • Broken-link
        • Doc-terminal-test-2
        • Doc-terminal-test-1
      • Books
      • Boolean-reasoning
      • Projects
      • Debugging
      • Community
      • Std
      • Proof-automation
      • Macro-libraries
      • ACL2
      • Interfacing-tools
      • Hardware-verification
      • Software-verification
      • Math
      • Testing-utilities
    • Keywords

    *keywords-gcc-c17*

    List of the additional GCC keywords for C17 [GCCM].

    There seems to be no place, in the GCC documentation, that clearly lists these keywords, unlike the C standards. We gathered them based on GCC extensions we encountered in practical code; more may need to be added.

    It is not even clear to us whether these should be actually keywords, as opposed to special identifiers somehow, but we treat them as keywords.

    These are all disjoint from the standard keywords.

    Definition: *keywords-gcc-c17*

    (defconst *keywords-gcc-c17*
      '("__alignof" "__alignof__" "asm" "__asm"
                    "__asm__" "__attribute" "__attribute__"
                    "__auto_type" "__builtin_offsetof"
                    "__builtin_types_compatible_p"
                    "__builtin_va_arg" "__builtin_va_list"
                    "__declspec" "__extension__" "__float80"
                    "__floar128" "_Float16" "_Float16x"
                    "_Float32" "_Float32x" "_Float64"
                    "_Float64x" "_Float128" "_Float128x"
                    "__imag__" "__inline" "__inline__"
                    "__int128" "__int128_t" "__label__"
                    "__real__" "__restrict" "__restrict__"
                    "__seg_fs" "__seg_gs" "__signed"
                    "__signed__" "__stdcall" "__thread"
                    "typeof" "__typeof" "__typeof__"
                    "__volatile" "__volatile__"))