maat::ExprVar class

Abstract variable.

❱   Base classes

class ExprObject

❱   Constructors, destructors, conversion operators

ExprVar(size_t size, std::string name, Taint tainted = Taint::NOT_TAINTED)

❱   Public functions

auto name() -> const std::string& virtual
Get the variable name.

auto hash() -> hash_t virtual
Return the expression hash. Every expression has a unique hash.

auto is_tainted(ucst_t taint_mask = maat::default_expr_taint_mask) -> bool virtual
Return true if at least one bit set in 'taint_mask' is tainted in the epression.

auto status(const VarContext& ctx) -> ExprStatus virtual
Return the expression symbolic status.

auto value_set() -> ValueSet& virtual
Return the value set of the expression, which is the set of possible numerical values it can take expressed as a strided interval.

auto class_uid() const -> uid_t virtual
Return the class uid (see ClassId enum)

void dump(Serializer&) const virtual
Dump the object contents in a serializer stream.

void load(Deserializer&) virtual
Restore an object from a deserializer stream.

❱   Protected functions

auto concretize(const VarContext* ctx = nullptr) -> const Number& virtual
Return the concrete value of the expression evaluated in the context 'ctx'.