10#ifndef KLEE_ARRAYEXPRHASH_H
11#define KLEE_ARRAYEXPRHASH_H
18#include <unordered_map>
24 return(array ? array->
hash() : 0);
30 return(array1 == array2);
36 return(un ? un->
hash() : 0);
63 typedef std::unordered_map<const Array*, T, ArrayHashFn, ArrayCmpFn>
ArrayHash;
67 typedef std::unordered_map<const UpdateNode*, T, UpdateNodeHashFn, UpdateNodeCmpFn>
UpdateNodeHash;
80#ifdef KLEE_ARRAY_DEBUG
86 if (it != _array_hash.end()) {
96#ifdef KLEE_ARRAY_DEBUG
101 _array_hash[array] = exp;
109#ifdef KLEE_ARRAY_DEBUG
115 if (it != _update_node_hash.end()) {
125#ifdef KLEE_ARRAY_DEBUG
130 _update_node_hash[un] = exp;
UpdateNodeHash::iterator UpdateNodeHashIter
void hashArrayExpr(const Array *array, T &exp)
bool lookupUpdateNodeExpr(const UpdateNode *un, T &exp) const
std::unordered_map< const Array *, T, ArrayHashFn, ArrayCmpFn > ArrayHash
void hashUpdateNodeExpr(const UpdateNode *un, T &exp)
UpdateNodeHash::const_iterator UpdateNodeHashConstIter
ArrayHash::const_iterator ArrayHashConstIter
bool lookupArrayExpr(const Array *array, T &exp) const
ArrayHash::iterator ArrayHashIter
std::unordered_map< const UpdateNode *, T, UpdateNodeHashFn, UpdateNodeCmpFn > UpdateNodeHash
UpdateNodeHash _update_node_hash
Class representing a byte update of an array.
bool operator()(const Array *array1, const Array *array2) const
unsigned operator()(const Array *array) const
bool operator()(const UpdateNode *un1, const UpdateNode *un2) const
unsigned operator()(const UpdateNode *un) const