12#ifndef CPROVER_GOTO_INSTRUMENT_NONDET_VOLATILE_H
13#define CPROVER_GOTO_INSTRUMENT_NONDET_VOLATILE_H
23#define NONDET_VOLATILE_OPT "nondet-volatile"
24#define NONDET_VOLATILE_VARIABLE_OPT "nondet-volatile-variable"
25#define NONDET_VOLATILE_MODEL_OPT "nondet-volatile-model"
27#define OPT_NONDET_VOLATILE \
28 "(" NONDET_VOLATILE_OPT ")" \
29 "(" NONDET_VOLATILE_VARIABLE_OPT "):" \
30 "(" NONDET_VOLATILE_MODEL_OPT "):"
32#define HELP_NONDET_VOLATILE \
33 " {y--" NONDET_VOLATILE_OPT "} \t " \
34 "makes reads from volatile variables non-deterministic\n" \
35 " {y--" NONDET_VOLATILE_VARIABLE_OPT "} {uvariable} \t " \
36 "makes reads from given volatile variable non-deterministic\n" \
37 " {y--" NONDET_VOLATILE_MODEL_OPT "} {uvariable}:{umodel} \t " \
38 "models reads from given volatile variable by a call to the given model\n" \
ait supplies three of the four components needed: an abstract interpreter (in this case handling func...
Base class for all expressions.
void parse_nondet_volatile_options(const cmdlinet &cmdline, optionst &options)
void nondet_volatile(goto_modelt &goto_model, const optionst &options)
Havoc reads from volatile expressions, if enabled in the options.