10 #ifndef CPROVER_ANSI_C_C_TYPECAST_H
11 #define CPROVER_ANSI_C_C_TYPECAST_H
27 const typet &src_type,
28 const typet &dest_type);
31 const typet &src_type,
32 const typet &dest_type,
37 const typet &dest_type,
103 const typet &src_type,
104 const typet &orig_dest_type,
105 const typet &dest_type);
bool c_implicit_typecast(exprt &expr, const typet &dest_type, const namespacet &ns)
bool c_implicit_typecast_arithmetic(exprt &expr1, exprt &expr2, const namespacet &ns)
perform arithmetic prompotions and conversions
bool check_c_implicit_typecast(const typet &src_type, const typet &dest_type)
virtual void implicit_typecast_followed(exprt &expr, const typet &src_type, const typet &orig_dest_type, const typet &dest_type)
c_typecastt(const namespacet &_ns)
typet follow_with_qualifiers(const typet &src)
void do_typecast(exprt &dest, const typet &type)
virtual void implicit_typecast(exprt &expr, const typet &type)
c_typet get_c_type(const typet &type) const
virtual void implicit_typecast_arithmetic(exprt &expr)
std::list< std::string > warnings
static std::optional< std::string > check_address_can_be_taken(const typet &)
c_typet minimum_promotion(const typet &type) const
std::list< std::string > errors
Base class for all expressions.
A namespacet is essentially one or two symbol tables bound together, to allow for symbol lookups in t...
The type of an expression, extends irept.