mirror of
https://github.com/Z3Prover/z3
synced 2026-06-28 03:18:49 +00:00
Addressing the following: ``` `https://zenodo.org/records/16740866/files/UFDT.tar.zst?download=1` — ERRORS `4` (signal-11:4) - Error queries: `non-incremental/UFDT/20170428-Barrett/cdt-cade2015/data/distro/process/x2015_09_10_16_46_28_479_1049550.smt_in.smt2`, `non-incremental/UFDT/20170428-Barrett/cdt-cade2015/data/distro/process/x2015_09_10_16_46_29_792_1051661.smt_in.smt2`, `non-incremental/UFDT/20170428-Barrett/cdt-cade2015/data/distro/process/x2015_09_10_16_46_24_262_1043633.smt_in.smt2`, `non-incremental/UFDT/20170428-Barrett/cdt-cade2015/data/distro/process/x2015_09_10_16_46_25_595_1045744.smt_in.smt2` ``` These segfault due to infinite recursion in `datatype_factory::get_fresh_value` (through the call in line 222). Splitting ``` (declare-datatypes ((Nibble$ 0)(Char$ 0)(Char_list$ 0)) (((nibble0$) (nibble1$) (nibble2$) (nibble3$) (nibble4$) (nibble5$) (nibble6$) (nibble7$) (nibble8$) (nibble9$) (nibbleA$) (nibbleB$) (nibbleC$) (nibbleD$) (nibbleE$) (nibbleF$)) ((char$ (selectf$ Nibble$) (selectg$ Nibble$))) ((nil$) (cons$ (hd$ Char$) (tl$ Char_list$))) )) ``` into ``` (declare-datatypes ((Nibble$ 0)(Char$ 0)) (((nibble0$) (nibble1$) (nibble2$) (nibble3$) (nibble4$) (nibble5$) (nibble6$) (nibble7$) (nibble8$) (nibble9$) (nibbleA$) (nibbleB$) (nibbleC$) (nibbleD$) (nibbleE$) (nibbleF$)) ((char$ (selectf$ Nibble$) (selectg$ Nibble$))) )) (declare-datatypes ((Char_list$ 0)) ( ((nil$) (cons$ (hd$ Char$) (tl$ Char_list$))) )) ``` turns them into timeouts --------- Co-authored-by: Can Cebeci <t-cancebeci@microsoft.com> Co-authored-by: Nikolaj Bjorner <nbjorner@microsoft.com> |
||
|---|---|---|
| .. | ||
| array_factory.cpp | ||
| array_factory.h | ||
| char_factory.h | ||
| CMakeLists.txt | ||
| datatype_factory.cpp | ||
| datatype_factory.h | ||
| finite_set_factory.cpp | ||
| finite_set_factory.h | ||
| fpa_factory.h | ||
| func_interp.cpp | ||
| func_interp.h | ||
| model.cpp | ||
| model.h | ||
| model2expr.cpp | ||
| model2expr.h | ||
| model_core.cpp | ||
| model_core.h | ||
| model_evaluator.cpp | ||
| model_evaluator.h | ||
| model_evaluator_params.pyg | ||
| model_implicant.cpp | ||
| model_implicant.h | ||
| model_macro_solver.cpp | ||
| model_macro_solver.h | ||
| model_params.pyg | ||
| model_pp.cpp | ||
| model_pp.h | ||
| model_smt2_pp.cpp | ||
| model_smt2_pp.h | ||
| model_v2_pp.cpp | ||
| model_v2_pp.h | ||
| numeral_factory.cpp | ||
| numeral_factory.h | ||
| seq_factory.h | ||
| struct_factory.cpp | ||
| struct_factory.h | ||
| value_factory.cpp | ||
| value_factory.h | ||