CBMC
add_failed_symbols.h
Go to the documentation of this file.
1 /*******************************************************************\
2 
3 Module: Pointer Dereferencing
4 
5 Author: Daniel Kroening, kroening@kroening.com
6 
7 \*******************************************************************/
8 
11 
12 #ifndef CPROVER_POINTER_ANALYSIS_ADD_FAILED_SYMBOLS_H
13 #define CPROVER_POINTER_ANALYSIS_ADD_FAILED_SYMBOLS_H
14 
15 #include <util/expr.h>
16 #include <util/optional.h>
17 
18 class symbol_table_baset;
19 class symbolt;
20 class namespacet;
21 class symbol_exprt;
22 
23 void add_failed_symbols(symbol_table_baset &symbol_table);
24 
26  const symbolt &symbol, symbol_table_baset &symbol_table);
27 
28 irep_idt failed_symbol_id(const irep_idt &identifier);
29 
36 get_failed_symbol(const symbol_exprt &expr, const namespacet &ns);
37 
39 inline bool is_failed_symbol(const exprt &expr)
40 {
41  return expr.type().get_bool(ID_C_is_failed_symbol);
42 }
43 
44 #endif // CPROVER_POINTER_ANALYSIS_ADD_FAILED_SYMBOLS_H
dstringt
dstringt has one field, an unsigned integer no which is an index into a static table of strings.
Definition: dstring.h:36
optional.h
exprt
Base class for all expressions.
Definition: expr.h:55
failed_symbol_id
irep_idt failed_symbol_id(const irep_idt &identifier)
Get the name of the special symbol used to denote an unknown referee pointed to by a given pointer-ty...
Definition: add_failed_symbols.cpp:26
symbol_exprt
Expression to hold a symbol (variable)
Definition: std_expr.h:112
expr.h
is_failed_symbol
bool is_failed_symbol(const exprt &expr)
Return true if, and only if, expr is the result of failed dereferencing.
Definition: add_failed_symbols.h:39
namespacet
A namespacet is essentially one or two symbol tables bound together, to allow for symbol lookups in t...
Definition: namespace.h:90
exprt::type
typet & type()
Return the type of the expression.
Definition: expr.h:84
add_failed_symbol_if_needed
void add_failed_symbol_if_needed(const symbolt &symbol, symbol_table_baset &symbol_table)
Create a failed-dereference symbol for the given base symbol if it is pointer-typed,...
Definition: add_failed_symbols.cpp:63
symbol_table_baset
The symbol table base class interface.
Definition: symbol_table_base.h:21
optionalt
nonstd::optional< T > optionalt
Definition: optional.h:35
get_failed_symbol
optionalt< symbol_exprt > get_failed_symbol(const symbol_exprt &expr, const namespacet &ns)
Get the failed-dereference symbol for the given symbol.
Definition: add_failed_symbols.cpp:92
symbolt
Symbol table entry.
Definition: symbol.h:27
add_failed_symbols
void add_failed_symbols(symbol_table_baset &symbol_table)
Create a failed-dereference symbol for all symbols in the given table that need one (i....
Definition: add_failed_symbols.cpp:78
irept::get_bool
bool get_bool(const irep_idt &name) const
Definition: irep.cpp:58