CBMC
|
Nondeterministically initializes global scope variables, except for constants (such as string literals, final fields) and internal variables (such as CPROVER and symex variables, language specific internal variables). More...
#include "nondet_static.h"
#include <util/prefix.h>
#include <util/std_code.h>
#include <goto-programs/goto_model.h>
#include <linking/static_lifetime_init.h>
#include <regex>
Go to the source code of this file.
Functions | |
bool | is_nondet_initializable_static (const symbol_exprt &symbol_expr, const namespacet &ns) |
See the return. More... | |
static void | nondet_static (const namespacet &ns, goto_modelt &goto_model, const irep_idt &fct_name) |
Nondeterministically initializes global scope variables in a goto-function. More... | |
void | nondet_static (goto_modelt &goto_model) |
First main entry point of the module. More... | |
void | nondet_static (goto_modelt &goto_model, const std::set< std::string > &except_values) |
Second main entry point of the module. More... | |
void | nondet_static_matching (goto_modelt &goto_model, const std::string ®ex) |
Nondeterministically initializes global scope variables that match the given regex. More... | |
Nondeterministically initializes global scope variables, except for constants (such as string literals, final fields) and internal variables (such as CPROVER and symex variables, language specific internal variables).
Definition in file nondet_static.cpp.
bool is_nondet_initializable_static | ( | const symbol_exprt & | symbol_expr, |
const namespacet & | ns | ||
) |
See the return.
symbol_expr | The symbol expression to analyze. |
ns | Namespace for resolving type information |
Definition at line 36 of file nondet_static.cpp.
|
static |
Nondeterministically initializes global scope variables in a goto-function.
Iterates over instructions in the specified function and replaces all values assigned to nondet-initializable static variables with nondeterministic values.
ns | Namespace for resolving type information. | |
[in,out] | goto_model | Existing goto-functions and symbol table to be updated. |
fct_name | Name of the goto-function to be updated. |
Definition at line 83 of file nondet_static.cpp.
void nondet_static | ( | goto_modelt & | goto_model | ) |
First main entry point of the module.
Nondeterministically initializes global scope variables, except for constants (such as string literals, final fields) and internal variables (such as CPROVER and symex variables, language specific internal variables).
[in,out] | goto_model | Existing goto-model to be updated. |
Definition at line 131 of file nondet_static.cpp.
void nondet_static | ( | goto_modelt & | goto_model, |
const std::set< std::string > & | except_values | ||
) |
Second main entry point of the module.
Nondeterministically initializes global scope variables, except for constants (such as string literals, final fields), internal variables (such as CPROVER and symex variables, language specific internal variables) and variables passed to except_value.
[out] | goto_model | Existing goto-model to be updated. |
except_values | list of symbol names that should not be updated. |
Definition at line 143 of file nondet_static.cpp.
void nondet_static_matching | ( | goto_modelt & | goto_model, |
const std::string & | regex | ||
) |
Nondeterministically initializes global scope variables that match the given regex.
[out] | goto_model | Existing goto-model to be updated. |
regex | regex for matching variables in the format "filename:variable" (same format as those of except_values in nondet_static(goto_model, except_values) variant above). |
Definition at line 203 of file nondet_static.cpp.