-typedef struct s_pointers_pair {
- void *p1;
- void *p2;
- bool operator==(s_pointers_pair const& x) const {
- return this->p1 == x.p1 && this->p2 == x.p2;
- }
- bool operator<(s_pointers_pair const& x) const {
- return this->p1 < x.p1 || (this->p1 == x.p1 && this->p2 < x.p2);
- }
-} s_pointers_pair_t, *pointers_pair_t;
-
-namespace boost {
- template<>
- struct hash<s_pointers_pair> {
- typedef uintptr_t result_type;
- result_type operator()(s_pointers_pair const& x) const {
- return (result_type) x.p1 ^
- ((result_type) x.p2 << 8 | (result_type) x.p2 >> (8*sizeof(uintptr_t) - 8));
- }
- };
-}
-
-struct mc_compare_state {
- boost::unordered_set<s_pointers_pair> compared_pointers;
-};
-