Skip to content

Commit 2f723d5

Browse files
committed
Distinguish intentionally unsound from experimental options
Unlike some other options (which are yet to be documented), `--full-slice` is not unsound by design.
1 parent 5fbd4f7 commit 2f723d5

File tree

3 files changed

+10
-5
lines changed

3 files changed

+10
-5
lines changed

doc/cprover-manual/unsound_options.md

+4-3
Original file line numberDiff line numberDiff line change
@@ -15,13 +15,14 @@ that we want to avoid:
1515
* **Wrong proof to an assertion**, which means that it might indicate an assertion passing
1616
when it's not.
1717

18-
We expect core CBMC to display none of the behaviour we described above (and if it does,
18+
We expect that, by default, CBMC displays none of the behaviour we described above (and if it does,
1919
it's an extremely serious bug that we aim to fix on an ASAP basis), but be aware that
2020
certain tools, like `goto-instrument`, may contain components that are experimental in
2121
nature and thus do transformations that eventually lead to behaviour such as the ones
22-
described above.
22+
described above. Furthermore, there are some options that lead to unsound
23+
analysis results *by design*.
2324

24-
## Unsound Options
25+
## Experimental Options
2526

2627
Be advised that the following command line options to `cbmc` and `goto-instrument`
2728
have been reported to be unsound:

src/cbmc/cbmc_parse_options.cpp

+3-1
Original file line numberDiff line numberDiff line change
@@ -840,7 +840,9 @@ bool cbmc_parse_optionst::process_goto_program(
840840
// full slice?
841841
if(options.get_bool_option("full-slice"))
842842
{
843-
log.warning() << "**** WARNING: Unsound option --full-slice"
843+
log.warning() << "**** WARNING: Experimental option --full-slice, "
844+
<< "analysis results may be unsound. See "
845+
<< "https://github.com/diffblue/cbmc/issues/260"
844846
<< messaget::eom;
845847
log.status() << "Performing a full slice" << messaget::eom;
846848
if(options.is_set("property"))

src/goto-instrument/goto_instrument_parse_options.cpp

+3-1
Original file line numberDiff line numberDiff line change
@@ -1743,7 +1743,9 @@ void goto_instrument_parse_optionst::instrument_goto_program()
17431743
do_indirect_call_and_rtti_removal();
17441744
do_remove_returns();
17451745

1746-
log.warning() << "**** WARNING: Unsound option --full-slice"
1746+
log.warning() << "**** WARNING: Experimental option --full-slice, "
1747+
<< "analysis results may be unsound. See "
1748+
<< "https://github.com/diffblue/cbmc/issues/260"
17471749
<< messaget::eom;
17481750
log.status() << "Performing a full slice" << messaget::eom;
17491751
if(cmdline.isset("property"))

0 commit comments

Comments
 (0)