1#ifndef CPROVER_C_TYPECAST_H
2#define CPROVER_C_TYPECAST_H
23 const typet &src_type,
24 const typet &dest_type,
34 const typet &dest_type,
124 const typet &src_type,
125 const typet &dest_type);
void take_reference_address(expr2tc &expr, pointer_ref_kindt rk)
Take the address of an object bound to a reference; see c_typecast.cpp for why a conditional takes it...
Definition c_typecast.cpp:783
bool c_implicit_typecast(exprt &expr, const typet &dest_type, const namespacet &ns)
Definition c_typecast.cpp:17
bool c_implicit_typecast_arithmetic(exprt &expr1, exprt &expr2, const namespacet &ns)
Definition c_typecast.cpp:62
bool check_c_implicit_typecast(const typet &src_type, const typet &dest_type)
Definition c_typecast.cpp:82
c_typet
Definition c_typecast.h:82
@ CHAR
Definition c_typecast.h:84
@ UCHAR
Definition c_typecast.h:85
@ PTR
Definition c_typecast.h:101
@ SINGLE
Definition c_typecast.h:97
@ INT
Definition c_typecast.h:86
@ LONGDOUBLE
Definition c_typecast.h:99
@ LONGLONG
Definition c_typecast.h:90
@ VOIDPTR
Definition c_typecast.h:100
@ BOOL
Definition c_typecast.h:83
@ INT128
Definition c_typecast.h:95
@ OTHER
Definition c_typecast.h:102
@ ULONGLONG
Definition c_typecast.h:91
@ ULONG
Definition c_typecast.h:89
@ DOUBLE
Definition c_typecast.h:98
@ UINT128
Definition c_typecast.h:96
@ LONG
Definition c_typecast.h:88
@ UINT
Definition c_typecast.h:87
c_typecastt(const namespacet &_ns)
Definition c_typecast.h:55
static c_typet rank_floating(unsigned width)
Definition c_typecast.cpp:327
typet follow_with_qualifiers(const typet &src)
Definition c_typecast.cpp:279
void do_typecast(exprt &dest, const typet &type)
Definition c_typecast.cpp:1007
virtual void implicit_typecast(exprt &expr, const typet &type)
Definition c_typecast.cpp:564
virtual ~c_typecastt()=default
virtual void implicit_typecast_followed(exprt &expr, const typet &src_type, const typet &dest_type)
Definition c_typecast.cpp:604
virtual void implicit_typecast_arithmetic(exprt &expr)
Definition c_typecast.cpp:550
std::list< std::string > warnings
Definition c_typecast.h:75
const namespacet & ns
Definition c_typecast.h:78
static c_typet rank_integer(unsigned width, bool is_signed)
Definition c_typecast.cpp:304
bool convert_to_pointer(expr2tc &expr, const type2tc &src_type, const type2tc &dest_type)
Definition c_typecast.cpp:887
bool no_simplify
Definition c_typecast.h:79
c_typet get_c_type(const typet &type)
Definition c_typecast.cpp:338
bool convert_reference(expr2tc &expr, const type2tc &src_type, const type2tc &dest_type)
The two reference arms, split out to keep implicit_typecast_followed under the complexity gate.
Definition c_typecast.cpp:809
std::list< std::string > errors
Definition c_typecast.h:74
Definition namespace.h:10
configt config
Definition config.cpp:8
irep_container< type2t > type2tc
Definition irep2.h:430
irep_container< expr2t > expr2tc
Definition irep2.h:431
pointer_ref_kindt
How the source spelled a pointer.
Definition irep2_type.h:556