Go to the source code of this file.
|
| 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 per arm and why rk matters.
|
| bool | check_c_implicit_typecast (const typet &src_type, const typet &dest_type) |
| bool | check_c_implicit_typecast (const type2tc &src_type, const type2tc &dest_type) |
| bool | check_c_implicit_typecast (const typet &src_type, const typet &dest_type, const namespacet &ns) |
| bool | check_c_implicit_typecast (const type2tc &src_type, const type2tc &dest_type, const namespacet &ns) |
| bool | c_implicit_typecast (exprt &expr, const typet &dest_type, const namespacet &ns) |
| bool | c_implicit_typecast (expr2tc &expr, const type2tc &dest_type, const namespacet &ns) |
| bool | c_implicit_typecast_arithmetic (exprt &expr1, exprt &expr2, const namespacet &ns) |
| bool | c_implicit_typecast_arithmetic (expr2tc &expr1, expr2tc &expr2, const namespacet &ns) |
◆ c_implicit_typecast() [1/2]
◆ c_implicit_typecast() [2/2]
◆ c_implicit_typecast_arithmetic() [1/2]
◆ c_implicit_typecast_arithmetic() [2/2]
◆ check_c_implicit_typecast() [1/4]
◆ check_c_implicit_typecast() [2/4]
◆ check_c_implicit_typecast() [3/4]
| bool check_c_implicit_typecast |
( |
const typet & | src_type, |
|
|
const typet & | dest_type ) |
◆ check_c_implicit_typecast() [4/4]
◆ take_reference_address()
Take the address of an object bound to a reference; see c_typecast.cpp for why a conditional takes it per arm and why rk matters.
Take the address of an object bound to a reference; see c_typecast.cpp for why a conditional takes it per arm and why rk matters.
rk must be the destination's own kind. irept can hardcode #reference because its operator== skips comment attributes, so T& and T&& compare equal there; ref_kind is a real field, so a wrong kind leaves do_typecast's dest_type != type guard true and appends a cast irept never produces.