libabigail
Classes | Namespaces | Enumerations | Functions
abg-hash.h File Reference
#include <cstdint>
#include <cstddef>
#include <string>
#include "abg-ir.h"
Include dependency graph for abg-hash.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  array_type_def::hash
 Hash functor for instances of array_type_def::hash. More...
 
struct  array_type_def::subrange_type::hash
 Hash functor for instances of array_type_def::subrange_type. More...
 
struct  class_decl::base_spec::hash
 The hashing functor for class_decl::base_spec. More...
 
struct  class_decl::hash
 Hasher for the class_decl type. More...
 
struct  class_or_union::hash
 Hasher for the class_or_union type. More...
 
struct  decl_base::hash
 
struct  enum_type_decl::hash
 Hash functor for instances of enum_type_decl. More...
 
struct  function_type::hash
 The hashing functor for function_type. More...
 
struct  member_base::hash
 The hashing functor for member_base. More...
 
struct  method_type::hash
 Hashing functor for the method_type type. More...
 
struct  pointer_type_def::hash
 Hash functor for instances of pointer_type_def. More...
 
struct  ptr_to_mbr_type::hash
 Hash functor for instances of ptr_to_mbr_type. More...
 
struct  qualified_type_def::hash
 Hash functor for instances of qualified_type_def. More...
 
struct  reference_type_def::hash
 Hash functor for instances of reference_type_def. More...
 
struct  type_base::hash
 Hash functor for instances of type_base. More...
 
struct  type_decl::hash
 Hash functor for instances of type_decl. More...
 
struct  typedef_decl::hash
 Hash functor for instances of typedef_decl. More...
 
struct  union_decl::hash
 Hash functor for instances of union_decl type. More...
 

Namespaces

namespace  abigail
 Toplevel namespace for libabigail.
 
namespace  abigail::hashing
 Namespace for hashing.
 
namespace  abigail::ir
 The namespace of the internal representation of ABI artifacts like types and decls.
 

Enumerations

enum  hashing_state {
  HASHING_NOT_DONE_STATE , HASHING_STARTED_STATE , HASHING_CYCLED_TYPE_STATE , HASHING_SUBTYPE_STATE ,
  HASHING_FINISHED_STATE
}
 Enumeration of the different hashing states of an IR node being hashed. More...
 

Functions

hash_t combine_hashes (hash_t val1, hash_t val2)
 Combine two hash values to produce a third hash value. More...
 
bool deserialize_hash (const string &input, uint64_t &hash)
 Read a string of characters representing a string of hexadecimal digits which itself represents a hash value that was computed using the XH64 algorithm from the xxhash project. More...
 
uint32_t fnv_hash (const std::string &str)
 Compute a stable string hash. More...
 
hashing::hashing_state get_hashing_state (const type_or_decl_base &tod)
 Get the hashing state of an IR node. More...
 
hash_t hash (const std::string &str)
 Hash a string. More...
 
hash_t hash (std::uint64_t v, std::uint64_t seed=0)
 
bool is_recursive_artefact (const type_or_decl_base &t)
 Test if an artifact is recursive. More...
 
void is_recursive_artefact (const type_or_decl_base &t, bool f)
 Set the property that flags an artifact as recursive. More...
 
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 characters representing the digits of the hash in the canonical form requested by the xxhash project. That canonical form is basically a big endian representation of the hexadecimal hash number. More...
 
void set_hashing_state (const type_or_decl_base &tod, hashing::hashing_state s)
 Set the hashing state of an IR node. More...