//===-- sanitizer_range.h ---------------------------------------*- C++ -*-===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// // // Contais Range and related utilities. // //===----------------------------------------------------------------------===// #ifndef SANITIZER_RANGE_H #define SANITIZER_RANGE_H #include "sanitizer_common.h" #include "sanitizer_common/sanitizer_array_ref.h" namespace __sanitizer { struct Range { uptr begin; uptr end; }; inline bool operator==(const Range &lhs, const Range &rhs) { return lhs.begin == rhs.begin && lhs.end == rhs.end; } inline bool operator!=(const Range &lhs, const Range &rhs) { return !(lhs == rhs); } // Calculates intersection of two sets of regions in O(N log N) time. void Intersect(ArrayRef a, ArrayRef b, InternalMmapVectorNoCtor &output); } // namespace __sanitizer #endif // SANITIZER_RANGE_H