File tree 5 files changed +30
-10
lines changed
5 files changed +30
-10
lines changed Original file line number Diff line number Diff line change @@ -1084,9 +1084,7 @@ void jbmc_parse_optionst::help()
1084
1084
" --yices use Yices\n "
1085
1085
" --z3 use Z3\n "
1086
1086
" --refine use refinement procedure (experimental)\n "
1087
- " --no-refine-strings turn off string refinement\n "
1088
- " --string-printable restrict to printable strings (experimental)\n " // NOLINT(*)
1089
- " --max-nondet-string-length n bound the length of nondet (e.g. input) strings\n " // NOLINT(*)
1087
+ HELP_STRING_REFINEMENT
1090
1088
" --outfile filename output formula to given file\n "
1091
1089
" --arrays-uf-never never turn arrays into uninterpreted functions\n " // NOLINT(*)
1092
1090
" --arrays-uf-always always turn arrays into uninterpreted functions\n " // NOLINT(*)
Original file line number Diff line number Diff line change 29
29
30
30
#include < goto-symex/path_storage.h>
31
31
32
+ #include < solvers/refinement/string_refinement.h>
33
+
32
34
#include < java_bytecode/java_bytecode_language.h>
33
35
34
36
class bmct ;
@@ -52,9 +54,7 @@ class optionst;
52
54
" (no-sat-preprocessor)" \
53
55
" (beautify)" \
54
56
" (dimacs)(refine)(max-node-refinement):(refine-arrays)(refine-arithmetic)" \
55
- " (no-refine-strings)" \
56
- " (string-printable)" \
57
- " (max-nondet-string-length):" \
57
+ OPT_STRING_REFINEMENT \
58
58
" (16)(32)(64)(LP64)(ILP64)(LLP64)(ILP32)(LP32)" \
59
59
OPT_SHOW_GOTO_FUNCTIONS \
60
60
OPT_SHOW_CLASS_HIERARCHY \
Original file line number Diff line number Diff line change @@ -959,8 +959,7 @@ void cbmc_parse_optionst::help()
959
959
" --yices use Yices\n "
960
960
" --z3 use Z3\n "
961
961
" --refine use refinement procedure (experimental)\n "
962
- " --refine-strings use string refinement (experimental)\n "
963
- " --string-printable add constraint that strings are printable (experimental)\n " // NOLINT(*)
962
+ HELP_STRING_REFINEMENT_CBMC
964
963
" --outfile filename output formula to given file\n "
965
964
" --arrays-uf-never never turn arrays into uninterpreted functions\n " // NOLINT(*)
966
965
" --arrays-uf-always always turn arrays into uninterpreted functions\n " // NOLINT(*)
Original file line number Diff line number Diff line change 22
22
23
23
#include < goto-programs/goto_trace.h>
24
24
25
+ #include < solvers/refinement/string_refinement.h>
26
+
25
27
#include " bmc.h"
26
28
#include " xml_interface.h"
27
29
#include " cbmc_solvers.h"
@@ -48,8 +50,7 @@ class optionst;
48
50
" (no-sat-preprocessor)" \
49
51
" (beautify)" \
50
52
" (dimacs)(refine)(max-node-refinement):(refine-arrays)(refine-arithmetic)" \
51
- " (refine-strings)" \
52
- " (string-printable)" \
53
+ OPT_STRING_REFINEMENT_CBMC \
53
54
" (16)(32)(64)(LP64)(ILP64)(LLP64)(ILP32)(LP32)" \
54
55
" (little-endian)(big-endian)" \
55
56
OPT_SHOW_GOTO_FUNCTIONS \
Original file line number Diff line number Diff line change 29
29
#include < solvers/refinement/string_refinement_invariant.h>
30
30
#include < solvers/refinement/string_refinement_util.h>
31
31
32
+ // clang-format off
33
+ #define OPT_STRING_REFINEMENT \
34
+ " (no-refine-strings)" \
35
+ " (string-printable)" \
36
+ " (max-nondet-string-length):"
37
+
38
+ #define HELP_STRING_REFINEMENT \
39
+ " --no-refine-strings turn off string refinement\n " \
40
+ " --string-printable restrict to printable strings (experimental)\n " /* NOLINT(*) */ \
41
+ " --max-nondet-string-length n bound the length of nondet (e.g. input) strings\n " /* NOLINT(*) */
42
+
43
+ // The integration of the string solver into CBMC is incomplete. Therefore,
44
+ // it is not turned on by default and not all options are available.
45
+ #define OPT_STRING_REFINEMENT_CBMC \
46
+ " (refine-strings)" \
47
+ " (string-printable)"
48
+
49
+ #define HELP_STRING_REFINEMENT_CBMC \
50
+ " --refine-strings use string refinement (experimental)\n " \
51
+ " --string-printable restrict to printable strings (experimental)\n " /* NOLINT(*) */
52
+ // clang-format on
53
+
32
54
#define DEFAULT_MAX_NB_REFINEMENT std::numeric_limits<size_t >::max()
33
55
34
56
class string_refinementt final : public bv_refinementt
You can’t perform that action at this time.
0 commit comments