CBMC
|
Determine whether an expression is constant. More...
#include <expr_util.h>
Public Member Functions | |
can_forward_propagatet (const namespacet &ns) | |
bool | operator() (const exprt &e) const |
returns true iff the expression can be considered constant More... | |
Protected Member Functions | |
virtual bool | is_constant (const exprt &) const |
This function determines what expressions are to be propagated as "constants". More... | |
virtual bool | is_constant_address_of (const exprt &) const |
this function determines which reference-typed expressions are constant More... | |
Protected Attributes | |
const namespacet & | ns |
Determine whether an expression is constant.
A literal constant is constant, but so are, e.g., sums over constants or addresses of objects. An implementation may derive from this class to refine what it considers constant in a particular context by overriding is_constant and/or is_constant_address_of.
Definition at line 90 of file expr_util.h.
|
inlineexplicit |
Definition at line 93 of file expr_util.h.
|
protectedvirtual |
This function determines what expressions are to be propagated as "constants".
Reimplemented in goto_symex_can_forward_propagatet, havoc_utils_can_forward_propagatet, and constant_propagator_can_forward_propagatet.
Definition at line 203 of file expr_util.cpp.
|
protectedvirtual |
this function determines which reference-typed expressions are constant
Definition at line 284 of file expr_util.cpp.
|
inline |
returns true iff the expression can be considered constant
Definition at line 98 of file expr_util.h.
|
protected |
Definition at line 104 of file expr_util.h.