|
ESBMC
Efficient SMT-based Context-Bounded Model Checker
|
Union type. More...
#include <irep2_type.h>
Public Member Functions | |
| union_type2t (const std::vector< type2tc > &_members, const std::vector< irep_idt > &memb_names, const std::vector< irep_idt > &memb_pretty_names, const irep_idt &_name, bool _packed=false) | |
| Primary constructor. | |
| union_type2t (const union_type2t &ref)=default | |
| unsigned int | get_width () const |
| Public Member Functions inherited from type2t | |
| virtual | ~type2t ()=default |
| unsigned int | get_width () const |
| Fetch bit width of this type. | |
| bool | operator== (const type2t &ref) const |
| bool | operator!= (const type2t &ref) const |
| bool | operator< (const type2t &ref) const |
| std::string | pretty (unsigned int indent=0) const |
| Produce a human-readable string representation of type. | |
| DUMP_METHOD void | dump () const |
| Dump object string representation to stdout. | |
| size_t | crc () const |
| Produce a checksum/hash of the current object. | |
| bool | cmp (const type2t &ref) const |
| Structural comparison. | |
| int | lt (const type2t &ref) const |
| Trinary structural ordering. | |
| list_of_memberst | tostring (unsigned int indent) const |
| Extract a list of members from type as strings. | |
| type2tc | clone () const |
| Clone method. | |
| template<typename T> | |
| void | foreach_subtype (T &&t) const |
| template<typename T> | |
| void | Foreach_subtype (T &&t) |
| Public Member Functions inherited from irep2t | |
| irep2t () noexcept | |
| irep2t (const irep2t &) noexcept | |
| irep2t & | operator= (const irep2t &)=delete |
| virtual | ~irep2t ()=default |
| void | mark_writer () const noexcept |
| void | clear_writer () const noexcept |
Public Attributes | |
| std::vector< type2tc > | members |
| std::vector< irep_idt > | member_names |
| std::vector< irep_idt > | member_pretty_names |
| irep_idt | name |
| bool | packed |
| Public Attributes inherited from type2t | |
| const type_ids | type_id |
| Instance of type_ids recording this types type. | |
| std::atomic< size_t > | crc_val |
| Public Attributes inherited from irep2t | |
| std::atomic< unsigned int > | refcount |
| std::atomic< std::uintptr_t > | writer_thread |
Static Public Attributes | |
| static constexpr auto | fields |
| static std::string | field_names [esbmct::num_type_fields] |
Additional Inherited Members | |
| Public Types inherited from type2t | |
| enum | type_ids { end_type_id } |
| Enumeration identifying each sort of type. More... | |
| typedef esbmct::function_ref< void(const type2tc &)> | const_subtype_delegate |
| typedef esbmct::function_ref< void(type2tc &)> | subtype_delegate |
| typedef type2tc | container_type |
| typedef type2t | base_type |
| Static Public Member Functions inherited from irep2t | |
| static std::uintptr_t | current_thread_tag () noexcept |
| Protected Member Functions inherited from type2t | |
| type2t (type_ids id) | |
| Primary constructor. | |
| type2t (const type2t &ref) | |
| Copy constructor. | |
| void | foreach_subtype_impl_const (const_subtype_delegate &t) const |
| void | foreach_subtype_impl (subtype_delegate &t) |
Union type.
Represents a union type - in a similar vein to struct_type2t, this contains a vector of types and vector of names, each element of which corresponds to a member in the union. There's also a name for the union.
|
inline |
Primary constructor.
| members | Vector of types corresponding to each member of union. |
| memb_names | Vector of names corresponding to each member of union. |
| name | Name of this union |
|
default |
| unsigned int union_type2t::get_width | ( | ) | const |
|
static |
|
staticconstexpr |
| std::vector<irep_idt> union_type2t::member_names |
| std::vector<irep_idt> union_type2t::member_pretty_names |
| std::vector<type2tc> union_type2t::members |
| irep_idt union_type2t::name |
| bool union_type2t::packed |