11 #ifdef REPORT_UNIMPLEMENTED_TYPE_CHECKS 21 #define CALL_ON_TYPE(type_type) \ 22 C<typet, type_type>()(type, std::forward<Args>(args)...) 24 template <
template <
typename,
typename>
class C,
typename... Args>
27 if(type.
id() == ID_signedbv)
31 else if(type.
id() == ID_unsignedbv)
37 #ifdef REPORT_UNIMPLEMENTED_TYPE_CHECKS 38 std::cerr <<
"Unimplemented well-formedness check for type with id: " 56 call_on_type<call_checkt>(type, vm);
72 call_on_type<call_validatet>(type, ns, vm);
88 call_on_type<call_validate_fullt>(type, ns, vm);
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) ...
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) ...
const irep_idt & id() const
#define CALL_ON_TYPE(type_type)
Fixed-width bit-vector with two's complement interpretation.
A namespacet is essentially one or two symbol tables bound together, to allow for symbol lookups in t...
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)
const std::string & id_string() const
Defines typet, type_with_subtypet and type_with_subtypest.