11 #ifdef REPORT_UNIMPLEMENTED_TYPE_CHECKS
19 #define CALL_ON_TYPE(type_type) \
20 C<typet, type_type>()(type, std::forward<Args>(args)...)
22 template <
template <
typename,
typename>
class C,
typename... Args>
25 if(type.
id() == ID_bv)
29 else if(type.
id() == ID_unsignedbv)
33 else if(type.
id() == ID_signedbv)
37 else if(type.
id() == ID_fixedbv)
41 else if(type.
id() == ID_floatbv)
45 else if(type.
id() == ID_pointer)
52 else if(type.
id() == ID_c_bool)
56 else if(type.
id() == ID_array)
62 #ifdef REPORT_UNIMPLEMENTED_TYPE_CHECKS
63 std::cerr <<
"Unimplemented well-formedness check for type with id: "
81 call_on_type<call_checkt>(type, vm);
97 call_on_type<call_validatet>(type, ns, vm);
113 call_on_type<call_validate_fullt>(type, ns, vm);
Pre-defined bitvector types.
Fixed-width bit-vector without numerical interpretation.
Fixed-width bit-vector with signed fixed-point interpretation.
Fixed-width bit-vector with IEEE floating-point interpretation.
bool get_bool(const irep_idt &name) const
const std::string & id_string() const
const irep_idt & id() const
A namespacet is essentially one or two symbol tables bound together, to allow for symbol lookups in t...
The pointer type These are both 'bitvector_typet' (they have a width) and 'type_with_subtypet' (they ...
Fixed-width bit-vector with two's complement interpretation.
The type of an expression, extends irept.
Fixed-width bit-vector with unsigned binary interpretation.
void check_type(const typet &type, const validation_modet vm)
Check that the given type is well-formed (shallow checks only, i.e., subtypes are not checked)
#define CALL_ON_TYPE(type_type)
void validate_type(const typet &type, const namespacet &ns, const validation_modet vm)
Check that the given type is well-formed, assuming that its subtypes have already been checked for we...
void call_on_type(const typet &type, Args &&... args)
void validate_full_type(const typet &type, const namespacet &ns, const validation_modet vm)
Check that the given type is well-formed (full check, including checks of subtypes)