12345678910111213141516171819202122232425262728293031323334353637383940 |
- //===-- 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<Range> a, ArrayRef<Range> b,
- InternalMmapVectorNoCtor<Range> &output);
- } // namespace __sanitizer
- #endif // SANITIZER_RANGE_H
|