|
CBMC
|
Structure type, corresponds to C style structs. More...
#include <std_types.h>
Inheritance diagram for struct_typet:
Collaboration diagram for struct_typet:Classes | |
| class | baset |
| Base class or struct that a class or struct inherits from. More... | |
Public Types | |
| typedef std::vector< baset > | basest |
Public Types inherited from struct_union_typet | |
| typedef std::vector< componentt > | componentst |
Public Types inherited from irept | |
| using | baset = tree_implementationt |
Public Types inherited from sharing_treet< irept, forward_list_as_mapt< irep_idt, irept > > | |
| using | dt = tree_nodet< irept, forward_list_as_mapt< irep_idt, irept >, true > |
| using | subt = typename dt::subt |
| using | named_subt = typename dt::named_subt |
| using | tree_implementationt = sharing_treet |
| Used to refer to this class from derived classes. | |
Public Member Functions | |
| struct_typet () | |
| struct_typet (componentst _components) | |
| bool | is_prefix_of (const struct_typet &other) const |
| Returns true if the struct is a prefix of other, i.e., if this struct has n components then the component types and names of this struct must match the first n components of other struct. | |
| bool | is_class () const |
| A struct may be a class, where members may have access restrictions. | |
| const basest & | bases () const |
| Get the collection of base classes/structs. | |
| basest & | bases () |
| Get the collection of base classes/structs. | |
| void | add_base (const struct_tag_typet &base) |
| Add a base class/struct. | |
| std::optional< baset > | get_base (const irep_idt &id) const |
| Return the base with the given name, if exists. | |
| bool | has_base (const irep_idt &id) const |
Test whether id is a base class/struct. | |
Public Member Functions inherited from struct_union_typet | |
| struct_union_typet (const irep_idt &_id) | |
| struct_union_typet (const irep_idt &_id, componentst _components) | |
| const componentst & | components () const |
| componentst & | components () |
| bool | has_component (const irep_idt &component_name) const |
| const componentt & | get_component (const irep_idt &component_name) const |
| Get the reference to a component with given name. | |
| std::size_t | component_number (const irep_idt &component_name) const |
| Return the sequence number of the component with given name. | |
| const typet & | component_type (const irep_idt &component_name) const |
| irep_idt | get_tag () const |
| void | set_tag (const irep_idt &tag) |
| bool | is_class () const |
| A struct may be a class, where members may have access restrictions. | |
| irep_idt | default_access () const |
| Return the access specification for members where access has not been modified. | |
| bool | is_incomplete () const |
| A struct/union may be incomplete. | |
| void | make_incomplete () |
| A struct/union may be incomplete. | |
Public Member Functions inherited from typet | |
| typet () | |
| typet (const irep_idt &_id) | |
| typet (irep_idt _id, typet _subtype) | |
| typet & | add_subtype () |
| bool | has_subtypes () const |
| bool | has_subtype () const |
| void | remove_subtype () |
| const source_locationt & | source_location () const |
| source_locationt & | add_source_location () |
| typet && | with_source_location (source_locationt location) && |
| This is a 'fluent style' method for creating a new type with an added-on source location. | |
| typet & | with_source_location (source_locationt location) & |
| This is a 'fluent style' method for adding a source location. | |
| typet && | with_source_location (const typet &type) && |
| This is a 'fluent style' method for creating a new type with an added-on source location. | |
| typet & | with_source_location (const typet &type) & |
| This is a 'fluent style' method for adding a source location. | |
| typet & | add_type (const irep_idt &name) |
| const typet & | find_type (const irep_idt &name) const |
Public Member Functions inherited from irept | |
| bool | is_nil () const |
| bool | is_not_nil () const |
| irept (const irep_idt &_id) | |
| irept (const irep_idt &_id, const named_subt &_named_sub, const subt &_sub) | |
| irept ()=default | |
| const irep_idt & | id () const |
| const std::string & | id_string () const |
| void | id (const irep_idt &_data) |
| const irept & | find (const irep_idt &name) const |
| irept & | add (const irep_idt &name) |
| irept & | add (const irep_idt &name, irept irep) |
| const std::string & | get_string (const irep_idt &name) const |
| const irep_idt & | get (const irep_idt &name) const |
| bool | get_bool (const irep_idt &name) const |
| signed int | get_int (const irep_idt &name) const |
| std::size_t | get_size_t (const irep_idt &name) const |
| long long | get_long_long (const irep_idt &name) const |
| void | set (const irep_idt &name, const irep_idt &value) |
| void | set (const irep_idt &name, irept irep) |
| void | set (const irep_idt &name, const long long value) |
| void | set_size_t (const irep_idt &name, const std::size_t value) |
| void | remove (const irep_idt &name) |
| void | move_to_sub (irept &irep) |
| void | move_to_named_sub (const irep_idt &name, irept &irep) |
| bool | operator== (const irept &other) const |
| bool | operator!= (const irept &other) const |
| void | swap (irept &irep) |
| bool | operator< (const irept &other) const |
| defines ordering on the internal representation | |
| bool | ordering (const irept &other) const |
| defines ordering on the internal representation | |
| int | compare (const irept &i) const |
| defines ordering on the internal representation comments are ignored | |
| void | clear () |
| void | make_nil () |
| subt & | get_sub () |
| const subt & | get_sub () const |
| named_subt & | get_named_sub () |
| const named_subt & | get_named_sub () const |
| std::size_t | hash () const |
| std::size_t | full_hash () const |
| bool | full_eq (const irept &other) const |
| std::string | pretty (unsigned indent=0, unsigned max_indent=0) const |
Public Member Functions inherited from sharing_treet< irept, forward_list_as_mapt< irep_idt, irept > > | |
| sharing_treet (irep_idt _id) | |
| sharing_treet (irep_idt _id, named_subt _named_sub, subt _sub) | |
| sharing_treet () | |
| sharing_treet (const sharing_treet &irep) | |
| sharing_treet (sharing_treet &&irep) | |
| sharing_treet & | operator= (const sharing_treet &irep) |
| sharing_treet & | operator= (sharing_treet &&irep) |
| ~sharing_treet () | |
| const dt & | read () const |
| dt & | write () |
Additional Inherited Members | |
Static Public Member Functions inherited from typet | |
| static void | check (const typet &, const validation_modet=validation_modet::INVARIANT) |
| Check that the type is well-formed (shallow checks only, i.e., subtypes are not checked) | |
| static void | validate (const typet &type, const namespacet &, const validation_modet vm=validation_modet::INVARIANT) |
| Check that the type is well-formed, assuming that its subtypes have already been checked for well-formedness. | |
| static void | validate_full (const typet &type, const namespacet &ns, const validation_modet vm=validation_modet::INVARIANT) |
| Check that the type is well-formed (full check, including checks of subtypes) | |
Static Public Member Functions inherited from irept | |
| static bool | is_comment (const irep_idt &name) |
| static std::size_t | number_of_non_comments (const named_subt &) |
| count the number of named_sub elements that are not comments | |
Protected Member Functions inherited from sharing_treet< irept, forward_list_as_mapt< irep_idt, irept > > | |
| void | detach () |
Static Protected Member Functions inherited from sharing_treet< irept, forward_list_as_mapt< irep_idt, irept > > | |
| static void | remove_ref (dt *old_data) |
| static void | nonrecursive_destructor (dt *old_data) |
| Does the same as remove_ref, but using an explicit stack instead of recursion. | |
Protected Attributes inherited from sharing_treet< irept, forward_list_as_mapt< irep_idt, irept > > | |
| dt * | data |
Static Protected Attributes inherited from sharing_treet< irept, forward_list_as_mapt< irep_idt, irept > > | |
| static dt | empty_d |
Structure type, corresponds to C style structs.
Definition at line 230 of file std_types.h.
| typedef std::vector<baset> struct_typet::basest |
Definition at line 259 of file std_types.h.
|
inline |
Definition at line 233 of file std_types.h.
|
inlineexplicit |
Definition at line 237 of file std_types.h.
| void struct_typet::add_base | ( | const struct_tag_typet & | base | ) |
Add a base class/struct.
| base | Type of case/class struct to be added. |
Definition at line 99 of file std_types.cpp.
|
inline |
Get the collection of base classes/structs.
Definition at line 268 of file std_types.h.
Get the collection of base classes/structs.
Definition at line 262 of file std_types.h.
| std::optional< struct_typet::baset > struct_typet::get_base | ( | const irep_idt & | id | ) | const |
Return the base with the given name, if exists.
| id | The name of the base we are looking for. |
Definition at line 105 of file std_types.cpp.
Test whether id is a base class/struct.
| id | symbol type name |
id is a base class/struct. Definition at line 285 of file std_types.h.
|
inline |
A struct may be a class, where members may have access restrictions.
Definition at line 245 of file std_types.h.
| bool struct_typet::is_prefix_of | ( | const struct_typet & | other | ) | const |
Returns true if the struct is a prefix of other, i.e., if this struct has n components then the component types and names of this struct must match the first n components of other struct.
| other | Struct type to compare with. |
Definition at line 119 of file std_types.cpp.