7
7
\*******************************************************************/
8
8
9
9
// / \file
10
- // / Convert side_effect_expr_nondett expressions
10
+ // / Convert side_effect_expr_nondett expressions using java_object_factory
11
11
12
12
#ifndef CPROVER_JAVA_BYTECODE_CONVERT_NONDET_H
13
13
#define CPROVER_JAVA_BYTECODE_CONVERT_NONDET_H
@@ -22,30 +22,45 @@ class goto_model_functiont;
22
22
class message_handlert ;
23
23
struct object_factory_parameterst ;
24
24
25
- // / Replace calls to nondet library functions with an internal nondet
26
- // / representation.
25
+ // / Converts side_effect_exprt_nondett expressions using java_object_factory.
26
+ // / For example, NONDET(SomeClass *) may become a nondet choice between a null
27
+ // / pointer and a fresh instance of SomeClass, whose fields are in turn nondet
28
+ // / initialized in the same way. See \ref java_object_factory.h for details.
29
+ // /
30
+ // / Note the code introduced has been freshly `goto_convert`'d without any
31
+ // / passes such as \ref remove_java_new being run. Therefore the caller may need
32
+ // / to (re-)run this and other expected GOTO transformations after this pass
33
+ // / completes.
27
34
// / \param goto_functions: The set of goto programs to modify.
28
35
// / \param symbol_table: The symbol table to query/update.
29
36
// / \param message_handler: For error logging.
30
37
// / \param object_factory_parameters: Parameters for the generation of nondet
31
38
// / objects.
32
39
void convert_nondet (
33
- goto_functionst &,
34
- symbol_table_baset &,
35
- message_handlert &,
40
+ goto_functionst &goto_functions ,
41
+ symbol_table_baset &symbol_table ,
42
+ message_handlert &message_handler ,
36
43
const object_factory_parameterst &object_factory_parameters);
37
44
38
45
void convert_nondet (
39
46
goto_modelt &,
40
47
message_handlert &,
41
48
const object_factory_parameterst &object_factory_parameters);
42
49
43
- // / Replace calls to nondet library functions with an internal nondet
44
- // / representation.
50
+ // / Converts side_effect_exprt_nondett expressions using java_object_factory.
51
+ // / For example, NONDET(SomeClass *) may become a nondet choice between a null
52
+ // / pointer and a fresh instance of SomeClass, whose fields are in turn nondet
53
+ // / initialized in the same way. See \ref java_object_factory.h for details.
54
+ // /
55
+ // / Note the code introduced has been freshly `goto_convert`'d without any
56
+ // / passes such as \ref remove_java_new being run. Therefore the caller may need
57
+ // / to (re-)run this and other expected GOTO transformations after this pass
58
+ // / completes.
45
59
// / \param function: goto program to modify
46
60
// / \param message_handler: For error logging.
47
61
// / \param object_factory_parameters: Parameters for the generation of nondet
48
62
// / objects.
63
+ // / \param mode: Mode for newly created symbols
49
64
void convert_nondet (
50
65
goto_model_functiont &function,
51
66
message_handlert &message_handler,
0 commit comments