63 return name ==
"void_ptr" || name_to_id.find(name) != name_to_id.end();
79 std::vector<std::pair<irep_idt, unsigned>>
85 return registered_count;
92 std::map<irep_idt, unsigned> name_to_id;
95 std::map<irep_idt, std::vector<irep_idt>> direct_bases;
97 std::size_t registered_count = 0;
bool is_registered(const irep_idt &name) const
True iff name is an actual program type seen in a throw list (not a primitive #cpp_type,...
Definition exception_typeid.h:59
void register_chain(const std::vector< irep_idt > &chain)
Ingest an exception type's ancestry from a THROW's exception_list (front = dynamic type,...
Definition exception_typeid.cpp:47
bool is_subtype(const irep_idt &thrown, const irep_idt &caught) const
Reflexive-transitive subtype test: true iff thrown equals caught or derives from it transitively thro...
Definition exception_typeid.cpp:81
exception_typeidt()=default
Empty registry (populate with register_chain).
std::vector< std::pair< irep_idt, unsigned > > concrete_subtypes(const irep_idt &caught) const
{ (T, id_of(T)) : T <: caught } over all registered program types.
Definition exception_typeid.cpp:125
std::size_t size() const
Number of registered program types (excludes lazily-added unknowns).
Definition exception_typeid.h:83
unsigned id_of(const irep_idt &name)
Stable id for name.
Definition exception_typeid.cpp:72
static constexpr unsigned no_type
Reserved id meaning "no in-flight exception type".
Definition exception_typeid.h:40
std::set< unsigned > concrete_subtype_ids(const irep_idt &caught) const
{ id_of(T) : T <: caught } over all registered program types — the right-hand side of the catch-match...
Definition exception_typeid.cpp:115
Definition namespace.h:10