Support for inlined `struct` type is not yet implemented in incremental smt2 decision procedure
esteffin opened this issue · 0 comments
esteffin commented
The incremental smt2 decision procedure struct
encoding function expects the struct_exprt
type to be a struct_type_tag
and not an inlined struct_typet
.
This is causes the struct_typet
to not be encoded (while the outer struct_exprt
is encoded) and when passed to the convert_type_to_smt_sort
function it causes an invariant violation.
Note that the inline struct
is added by overflow operations instrumentation.
The tests affected by this issue are:
cbmc/gcc_builtin_add_overflow/test.desc
cbmc/gcc_builtin_mul_overflow/test.desc
cbmc/gcc_builtin_sub_overflow/test.desc
cbmc-primitives/exists_memory_checks/invalid_index_range.desc
cbmc-primitives/exists_memory_checks/negated_exists.desc
cbmc-primitives/exists_memory_checks/smt_missing_range_check.desc
cbmc-primitives/exists_memory_checks/valid_index_range.desc