CBMC
dfcc_infer_loop_assigns.h
Go to the documentation of this file.
1 /*******************************************************************\
2 
3 Module: Dynamic frame condition checking
4 
5 Author: Remi Delmas, delmasrd@amazon.com
6 
7 \*******************************************************************/
8 
11 
12 #ifndef CPROVER_GOTO_INSTRUMENT_CONTRACTS_DYNAMIC_FRAMES_DFCC_INFER_LOOP_ASSIGNS_H
13 #define CPROVER_GOTO_INSTRUMENT_CONTRACTS_DYNAMIC_FRAMES_DFCC_INFER_LOOP_ASSIGNS_H
14 
17 
19 
20 class source_locationt;
21 class messaget;
22 class namespacet;
23 class message_handlert;
24 
26 std::unordered_set<irep_idt> gen_loop_locals_set(
27  const irep_idt &function_id,
28  goto_functiont &goto_function,
30  message_handlert &message_handler,
31  const namespacet &ns);
32 
38  std::map<std::size_t, assignst> &inferred_loop_assigns_map,
39  goto_functionst &goto_functions,
40  const goto_functiont &goto_function,
41  message_handlert &message_handler,
42  const namespacet &ns);
43 
44 #endif
dstringt has one field, an unsigned integer no which is an index into a static table of strings.
Definition: dstring.h:38
A collection of goto functions.
A goto function, consisting of function body (see body) and parameter identifiers (see parameter_iden...
Definition: goto_function.h:24
Class that provides messages with a built-in verbosity 'level'.
Definition: message.h:154
A namespacet is essentially one or two symbol tables bound together, to allow for symbol lookups in t...
Definition: namespace.h:94
std::unordered_set< irep_idt > gen_loop_locals_set(const irep_idt &function_id, goto_functiont &goto_function, const dfcc_loop_nesting_graph_nodet &loop, message_handlert &message_handler, const namespacet &ns)
Collect identifiers that are local to loop.
void dfcc_infer_loop_assigns_for_function(std::map< std::size_t, assignst > &inferred_loop_assigns_map, goto_functionst &goto_functions, const goto_functiont &goto_function, message_handlert &message_handler, const namespacet &ns)
Infer assigns clause targets for loops in goto_function from their instructions and an alias analysis...
Builds a graph describing how loops are nested in a GOTO program.
Field-insensitive, location-sensitive may-alias analysis.
Helper functions for k-induction and loop invariants.
A graph node that stores information about a natural loop.