Skip to content

Well-formedness checking of goto models #3152

Closed
@danpoe

Description

@danpoe

To check that the goto model is well-formed, we want to check that the symbol table and the goto functions are well-formed, and that the symbol table and the goto functions are consistent. This includes the well-formedness of instructions, statements, expressions, and types.

The overall framework is in PR #3123 (it might need to be adapted slightly as new checks are added). It descends into the goto model and calls the validate() methods on its various components. It also provides macros DATA_CHECK(condition, ...) which either throw an exception when the condition does not hold, or use DATA_INVARIANT() to check the condition (based on the validation mode).

PRs #3128, #3127, and #3118 check that the goto functions and the symbol table are consistent. Those checks will be integrated into the harness of #3123.

PRs checking that the goto functions are well formed, and that the symbol table is well-formed are upcoming.

Metadata

Metadata

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions