#include "dfcc_infer_loop_assigns.h"#include <util/find_symbols.h>#include <util/pointer_expr.h>#include <goto-programs/goto_inline.h>#include <analyses/goto_rw.h>#include <analyses/local_may_alias.h>#include <goto-instrument/contracts/utils.h>#include "dfcc_loop_nesting_graph.h"#include "dfcc_root_object.h"Go to the source code of this file.
object_whole(expr) expr contains at least one identifier found in identifiers. src. loop. __CPROVER_dead_object to avoid aliasing all targets that are assigned to __CPROVER_dead_object. goto_function from their instructions and an alias analysis at the function level (with inlining), and store the result in inferred_loop_assigns_map, a map from loop numbers to the set of inferred assigns targets. Returns true iff expr contains at least one identifier found in identifiers.
Definition at line 39 of file dfcc_infer_loop_assigns.cpp.
Infer assigns clause targets for loops in goto_function from their instructions and an alias analysis at the function level (with inlining), and store the result in inferred_loop_assigns_map, a map from loop numbers to the set of inferred assigns targets.
Definition at line 299 of file dfcc_infer_loop_assigns.cpp.
Infer loop assigns in the given loop.
Loop assigns should depend on some identifiers in candidate_targets. function_assigns_map contains the function contracts used to infer loop assigns of function_call instructions.
Definition at line 213 of file dfcc_infer_loop_assigns.cpp.
Find all identifiers in src.
Definition at line 159 of file dfcc_infer_loop_assigns.cpp.
Collect identifiers that are local to this loop.
Collect identifiers that are local to loop.
A identifier is or is equivalent to a loop local if
Definition at line 55 of file dfcc_infer_loop_assigns.cpp.
Builds a call expression object_whole(expr)
Definition at line 24 of file dfcc_infer_loop_assigns.cpp.
Remove assignments to __CPROVER_dead_object to avoid aliasing all targets that are assigned to __CPROVER_dead_object.
Definition at line 281 of file dfcc_infer_loop_assigns.cpp.