CBMC
goto_trace_storage.h
Go to the documentation of this file.
1 /*******************************************************************\
2 
3 Module: Goto Trace Storage
4 
5 Author: Daniel Kroening, Peter Schrammel
6 
7 \*******************************************************************/
8 
11 
12 #ifndef CPROVER_GOTO_CHECKER_GOTO_TRACE_STORAGE_H
13 #define CPROVER_GOTO_CHECKER_GOTO_TRACE_STORAGE_H
14 
16 
17 #include <util/merge_irep.h>
18 
19 #include <list>
20 
22 {
23 public:
24  explicit goto_trace_storaget(const namespacet &);
25  goto_trace_storaget(const goto_trace_storaget &) = delete;
26 
28  const goto_tracet &insert(goto_tracet &&);
29 
34 
35  const std::list<goto_tracet> &all() const;
36  const goto_tracet &operator[](const irep_idt &property_id) const;
37 
38  const namespacet &get_namespace() const;
39 
40 protected:
42  const namespacet &ns;
43 
45  std::list<goto_tracet> traces;
46 
47  // maps property ID to index in traces
48  std::unordered_map<irep_idt, std::size_t> property_id_to_trace_index;
49 
52 };
53 
54 #endif // CPROVER_GOTO_CHECKER_GOTO_TRACE_STORAGE_H
dstringt
dstringt has one field, an unsigned integer no which is an index into a static table of strings.
Definition: dstring.h:36
merge_irep.h
goto_trace_storaget::property_id_to_trace_index
std::unordered_map< irep_idt, std::size_t > property_id_to_trace_index
Definition: goto_trace_storage.h:48
goto_trace_storaget::all
const std::list< goto_tracet > & all() const
Definition: goto_trace_storage.cpp:54
goto_trace.h
goto_trace_storaget::operator[]
const goto_tracet & operator[](const irep_idt &property_id) const
Definition: goto_trace_storage.cpp:60
namespacet
A namespacet is essentially one or two symbol tables bound together, to allow for symbol lookups in t...
Definition: namespace.h:90
goto_trace_storaget::merge_ireps
merge_irept merge_ireps
irep container for shared ireps
Definition: goto_trace_storage.h:51
goto_trace_storaget::insert
const goto_tracet & insert(goto_tracet &&)
Store trace that ends in a violated assertion.
Definition: goto_trace_storage.cpp:18
goto_trace_storaget::traces
std::list< goto_tracet > traces
stores the traces
Definition: goto_trace_storage.h:45
goto_trace_storaget::goto_trace_storaget
goto_trace_storaget(const namespacet &)
Definition: goto_trace_storage.cpp:14
goto_trace_storaget::insert_all
const goto_tracet & insert_all(goto_tracet &&)
Store trace that contains multiple violated assertions.
Definition: goto_trace_storage.cpp:37
goto_trace_storaget
Definition: goto_trace_storage.h:21
merge_irept
Definition: merge_irep.h:105
goto_trace_storaget::get_namespace
const namespacet & get_namespace() const
Definition: goto_trace_storage.cpp:69
goto_tracet
Trace of a GOTO program.
Definition: goto_trace.h:174
goto_trace_storaget::ns
const namespacet & ns
the namespace related to the traces
Definition: goto_trace_storage.h:42