CBMC
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
add_failed_symbols.h
Go to the documentation of this file.
1/*******************************************************************\
2
3Module: Pointer Dereferencing
4
5Author: 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
18class symbolt;
19class namespacet;
20class symbol_exprt;
21
22void add_failed_symbols(symbol_table_baset &symbol_table);
23
25 const symbolt &symbol, symbol_table_baset &symbol_table);
26
27irep_idt failed_symbol_id(const irep_idt &identifier);
28
34std::optional<symbol_exprt>
35get_failed_symbol(const symbol_exprt &expr, const namespacet &ns);
36
38inline bool is_failed_symbol(const exprt &expr)
39{
40 return expr.type().get_bool(ID_C_is_failed_symbol);
41}
42
43#endif // CPROVER_POINTER_ANALYSIS_ADD_FAILED_SYMBOLS_H
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,...
std::optional< symbol_exprt > get_failed_symbol(const symbol_exprt &expr, const namespacet &ns)
Get the failed-dereference symbol for the given symbol.
bool is_failed_symbol(const exprt &expr)
Return true if, and only if, expr is the result of failed dereferencing.
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...
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....
ait supplies three of the four components needed: an abstract interpreter (in this case handling func...
Definition ai.h:562
dstringt has one field, an unsigned integer no which is an index into a static table of strings.
Definition dstring.h:38
Base class for all expressions.
Definition expr.h:56
typet & type()
Return the type of the expression.
Definition expr.h:84
bool get_bool(const irep_idt &name) const
Definition irep.cpp:57
A namespacet is essentially one or two symbol tables bound together, to allow for symbol lookups in t...
Definition namespace.h:91
Expression to hold a symbol (variable)
Definition std_expr.h:131
The symbol table base class interface.
Symbol table entry.
Definition symbol.h:28