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,8 +22,15 @@ 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.
@@ -40,8 +47,15 @@ void convert_nondet(
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
0 commit comments