77\*******************************************************************/
88
99// / \file
10- // / Convert side_effect_expr_nondett expressions
10+ // / Convert side_effect_expr_nondett expressions using java_object_factory
1111
1212#ifndef CPROVER_JAVA_BYTECODE_CONVERT_NONDET_H
1313#define CPROVER_JAVA_BYTECODE_CONVERT_NONDET_H
@@ -22,8 +22,15 @@ class goto_model_functiont;
2222class message_handlert ;
2323struct object_factory_parameterst ;
2424
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.
2734// / \param goto_functions: The set of goto programs to modify.
2835// / \param symbol_table: The symbol table to query/update.
2936// / \param message_handler: For error logging.
@@ -40,8 +47,15 @@ void convert_nondet(
4047 message_handlert &,
4148 const object_factory_parameterst &object_factory_parameters);
4249
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.
4559// / \param function: goto program to modify
4660// / \param message_handler: For error logging.
4761// / \param object_factory_parameters: Parameters for the generation of nondet
0 commit comments