77hash(std::uint64_t v, std::uint64_t seed = 0);
80hash(
const std::string& str);
119 operator()(
const type_base_sptr t)
const;
Types of the main internal representation of libabigail.
Abstraction for an array range type, like in Ada, or just for an array dimension like in C or C++.
The abstraction of an array type.
Abstraction of a base specifier in a class declaration.
Abstracts a class declaration.
The base type of class_decl and union_decl.
The base type of all declarations.
Abstracts a declaration for an enum type.
Abstraction of a function type.
The base class for member types, data members and member functions. Its purpose is mainly to carry th...
Abstracts the type of a class member function.
The abstraction of a pointer type.
The abstraction of a pointer-to-member type.
The abstraction of a qualified type.
Abstracts a reference type.
An abstraction helper for type declarations.
A basic type declaration that introduces no scope.
The base class of both types and declarations.
The abstraction of a typedef declaration.
Abstracts a union type declaration.
hash_t combine_hashes(hash_t val1, hash_t val2)
Combine two hash values to produce a third hash value.
hashing::hashing_state get_hashing_state(const type_or_decl_base &tod)
Get the hashing state of an IR node.
void set_hashing_state(const type_or_decl_base &tod, hashing::hashing_state s)
Set the hashing state of an IR node.
hash_t hash(uint64_t v, uint64_t seed)
Hash an integer value and combine it with a hash previously computed.
hashing_state
Enumeration of the different hashing states of an IR node being hashed.
@ HASHING_STARTED_STATE
Hashing started but is not yet finished.
@ HASHING_FINISHED_STATE
Hashing of given IR node started and is now done. If an ABI artifact is in this state,...
@ HASHING_CYCLED_TYPE_STATE
A cycle has been detected in the graph on the current node node.
@ HASHING_SUBTYPE_STATE
Hashing a sub-type while hashing another type.
@ HASHING_NOT_DONE_STATE
No hashing has been done/started.
bool deserialize_hash(const string &input, uint64_t &hash)
Read a string of characters representing a string of hexadecimal digits which itself represents a has...
bool serialize_hash(uint64_t hash, string &output)
Serialiaze a hash value computed using the XH64 algorithm (from the xxhash project) into a string of ...
uint32_t fnv_hash(const std::string &str)
Compute a stable string hash.
bool is_recursive_artefact(const type_or_decl_base &t)
Test if an artifact is recursive.
shared_ptr< method_type > method_type_sptr
Convenience typedef for shared pointer to method_type.
shared_ptr< function_type > function_type_sptr
Convenience typedef for a shared pointer on a function_type.
shared_ptr< ptr_to_mbr_type > ptr_to_mbr_type_sptr
Convenience typedef for a shared pointer to a ptr_to_mbr_type.
Toplevel namespace for libabigail.
Hash functor for instances of array_type_def::hash.
Hash functor for instances of array_type_def::subrange_type.
The hashing functor for class_decl::base_spec.
Hasher for the class_decl type.
Hasher for the class_or_union type.
Hash functor for instances of enum_type_decl.
The hashing functor for function_type.
The hashing functor for member_base.
Hashing functor for the method_type type.
Hash functor for instances of pointer_type_def.
Hash functor for instances of ptr_to_mbr_type.
Hash functor for instances of qualified_type_def.
Hash functor for instances of reference_type_def.
Hash functor for instances of type_base.
Hash functor for instances of type_decl.
Hash functor for instances of typedef_decl.
Hash functor for instances of union_decl type.