• Top
    • Documentation
    • Books
    • Boolean-reasoning
    • Projects
    • Debugging
    • Std
    • Proof-automation
    • Macro-libraries
    • ACL2
    • Interfacing-tools
    • Hardware-verification
    • Software-verification
      • Kestrel-books
        • Crypto-hdwallet
        • Apt
        • Error-checking
        • Fty-extensions
        • Isar
        • Kestrel-utilities
        • Set
        • Soft
        • C
          • Syntax-for-tools
          • Atc
          • Language
          • Representation
          • Transformation-tools
            • Simpadd0
            • Deftrans
            • Splitgso
            • Constant-propagation
            • Split-fn
            • Copy-fn
            • Specialize
            • Split-all-gso
            • Rename
            • Utilities
              • Free-vars
                • Free-vars-fundef
                • Free-vars-typequal/attribspec-list-list
                • Free-vars-typequal/attribspec-list
                • Free-vars-structdeclor-list
                • Free-vars-structdecl-list
                • Free-vars-param-declor
                • Free-vars-param-declon-list
                • Free-vars-initdeclor-list
                • Free-vars-typequal/attribspec
                • Free-vars-structdeclor
                • Free-vars-structdecl
                • Free-vars-param-declon
                • Free-vars-initdeclor
                • Free-vars-enumer-list
                • Free-vars-dirdeclor
                • Free-vars-dirabsdeclor-option
                • Free-vars-desiniter-list
                • Free-vars-declor-option
                • Free-vars-decl-list
                • Free-vars-block-item-list
                • Free-vars-attrib-spec-list
                • Free-vars-asm-output-list
                • Free-vars-strunispec
                • Free-vars-statassert
                • Free-vars-spec/qual-list
                • Free-vars-spec/qual
                • Free-vars-initer-option
                • Free-vars-genassoc-list
                • Free-vars-enumspec
                • Free-vars-enumer
                • Free-vars-dirabsdeclor
                • Free-vars-desiniter
                • Free-vars-designor-list
                • Free-vars-declor
                • Free-vars-decl-spec-list
                • Free-vars-decl-spec
                • Free-vars-decl
                • Free-vars-block-item
                • Free-vars-attrib-spec
                • Free-vars-attrib-list
                • Free-vars-asm-stmt
                • Free-vars-asm-output
                • Free-vars-asm-input-list
                • Free-vars-asm-input
                • Free-vars-align-spec
                • Free-vars-absdeclor-option
                • Free-vars-absdeclor
                • Free-vars-type-spec
                • Free-vars-stmt
                • Free-vars-label
                • Free-vars-initer
                • Free-vars-genassoc
                • Free-vars-expr-option
                • Free-vars-expr-list
                • Free-vars-expr
                • Free-vars-designor
                • Free-vars-const-expr
                • Free-vars-attrib
              • Call-graphs
              • Fresh-ident-utility
              • Collect-idents
          • Insertion-sort
          • Pack
        • Bv
        • Imp-language
        • Event-macros
        • Java
        • Bitcoin
        • Ethereum
        • Yul
        • Zcash
        • ACL2-programming-language
        • Prime-fields
        • Json
        • Syntheto
        • File-io-light
        • Cryptography
        • Number-theory
        • Lists-light
        • Axe
        • Builtins
        • Solidity
        • Helpers
        • Htclient
        • Typed-lists-light
        • Arithmetic-light
      • X86isa
      • Axe
      • Execloader
    • Math
    • Testing-utilities
  • Utilities

Free-vars

A utility to collect free variables over a C AST.

This returns a set of all ordinary identifiers used as variables within the AST, excluding those variables which have first been declared, i.e. in a statement declaration or as a function parameter.

Note that ordinary identifiers do not include label names, the tags of structure, union, and enumeration type names, or the members of structures or unions.

Subtopics

Free-vars-fundef
Collect free variables appearing in a function function definition.
Free-vars-typequal/attribspec-list-list
Collect free variables appearing in a list of lists of type qualifiers and attribute specifiers.
Free-vars-typequal/attribspec-list
Collect free variables appearing in a list of type qualifiers and attribute specifiers.
Free-vars-structdeclor-list
Collect free variables appearing in a list of structure declarators.
Free-vars-structdecl-list
Collect free variables appearing in a list of structure declarations.
Free-vars-param-declor
Collect free variables appearing in a list of parameter declarations.
Free-vars-param-declon-list
Collect free variables appearing in a list of parameter declarations.
Free-vars-initdeclor-list
Collect free variables appearing in a list of initializer declarators.
Free-vars-typequal/attribspec
Collect free variables appearing in a type qualifiers or attribute specifiers.
Free-vars-structdeclor
Collect free variables appearing in a structure declarator.
Free-vars-structdecl
Collect free variables appearing in a structure declaration.
Free-vars-param-declon
Collect free variables appearing in a parameter declaration.
Free-vars-initdeclor
Collect free variables appearing in an initializer declarator.
Free-vars-enumer-list
Collect free variables appearing in a list of enumerators.
Free-vars-dirdeclor
Collect free variables appearing in a direct declarator.
Free-vars-dirabsdeclor-option
Collect free variables appearing in an optional direct abstract declarator.
Free-vars-desiniter-list
Collect free variables appearing in a list of initializers with optional designations.
Free-vars-declor-option
Collect free variables appearing in an optional declarator.
Free-vars-decl-list
Collect free variables appearing in a list of declarations.
Free-vars-block-item-list
Collect free variables appearing in a list of block item.
Free-vars-attrib-spec-list
Collect free variables appearing in a list of GCC attribute specifiers.
Free-vars-asm-output-list
Collect free variables appearing in a list of assembler output operands.
Free-vars-strunispec
Collect free variables appearing in a structure or union specifier.
Free-vars-statassert
Collect free variables appearing in a static assertion declaration.
Free-vars-spec/qual-list
Collect free variables appearing in a list of specifiers or qualifiers.
Free-vars-spec/qual
Collect free variables appearing in a specifier or qualifier.
Free-vars-initer-option
Collect free variables appearing in an optional initializer.
Free-vars-genassoc-list
Collect free variables appearing in a generic association list.
Free-vars-enumspec
Collect free variables appearing in a enumeration specifier.
Free-vars-enumer
Collect free variables appearing in a enumerator.
Free-vars-dirabsdeclor
Collect free variables appearing in a direct abstract declarator.
Free-vars-desiniter
Collect free variables appearing in an initializer with optional designations.
Free-vars-designor-list
Collect free variables appearing in a list of designators.
Free-vars-declor
Collect free variables appearing in a declarator.
Free-vars-decl-spec-list
Collect free variables appearing in a list of declaration specifiers.
Free-vars-decl-spec
Collect free variables appearing in a declaration specifier.
Free-vars-decl
Collect free variables appearing in a declaration.
Free-vars-block-item
Collect free variables appearing in a block item.
Free-vars-attrib-spec
Collect free variables appearing in a GCC attribute specifier.
Free-vars-attrib-list
Collect free variables appearing in a list of GCC attribute.
Free-vars-asm-stmt
Collect free variables appearing in an assembler statement.
Free-vars-asm-output
Collect free variables appearing in an assembler output operand.
Free-vars-asm-input-list
Collect free variables appearing in a list of assembler input operands.
Free-vars-asm-input
Collect free variables appearing in an assembler input operand.
Free-vars-align-spec
Collect free variables appearing in a alignment specifier.
Free-vars-absdeclor-option
Collect free variables appearing in an optional abstract declarator.
Free-vars-absdeclor
Collect free variables appearing in an abstract declarator.
Free-vars-type-spec
Collect free variables appearing in a type specifier.
Free-vars-stmt
Collect free variables appearing in a statement.
Free-vars-label
Collect free variables appearing in a label.
Free-vars-initer
Collect free variables appearing in an initializer.
Free-vars-genassoc
Collect free variables appearing in a generic association.
Free-vars-expr-option
Collect free variables appearing in an optional expression.
Free-vars-expr-list
Collect free variables appearing in an expression list.
Free-vars-expr
Collect free variables appearing in an expression.
Free-vars-designor
Collect free variables appearing in a designator.
Free-vars-const-expr
Collect free variables appearing in a constant expression.
Free-vars-attrib
Collect free variables appearing in a GCC attribute.