CBMC
rewrite_union.h
Go to the documentation of this file.
1 /*******************************************************************\
2 
3 Module: Symbolic Execution
4 
5 Author: Daniel Kroening, kroening@kroening.com
6 
7 \*******************************************************************/
8 
11 
12 #ifndef CPROVER_GOTO_PROGRAMS_REWRITE_UNION_H
13 #define CPROVER_GOTO_PROGRAMS_REWRITE_UNION_H
14 
16 
17 class exprt;
18 class goto_modelt;
19 
20 void rewrite_union(exprt &);
24 
25 void restore_union(exprt &, const namespacet &);
26 
27 #endif // CPROVER_GOTO_PROGRAMS_REWRITE_UNION_H
Base class for all expressions.
Definition: expr.h:56
A collection of goto functions.
::goto_functiont goto_functiont
A namespacet is essentially one or two symbol tables bound together, to allow for symbol lookups in t...
Definition: namespace.h:94
Goto Programs with Functions.
void rewrite_union(exprt &)
We rewrite u.c for unions u into byte_extract(u, 0), and { .c = v } into byte_update(NIL,...
void restore_union(exprt &, const namespacet &)
Undo the union access -> byte_extract replacement that rewrite_union did for the purpose of displayin...