brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.1 KiB · 7c593e1 Raw
41 lines · c
1//===-- sanitizer_range.h ---------------------------------------*- C++ -*-===//2//3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.4// See https://llvm.org/LICENSE.txt for license information.5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception6//7//===----------------------------------------------------------------------===//8//9// Contais Range and related utilities.10//11//===----------------------------------------------------------------------===//12 13#ifndef SANITIZER_RANGE_H14#define SANITIZER_RANGE_H15 16#include "sanitizer_common.h"17#include "sanitizer_common/sanitizer_array_ref.h"18 19namespace __sanitizer {20 21struct Range {22  uptr begin;23  uptr end;24};25 26inline bool operator==(const Range &lhs, const Range &rhs) {27  return lhs.begin == rhs.begin && lhs.end == rhs.end;28}29 30inline bool operator!=(const Range &lhs, const Range &rhs) {31  return !(lhs == rhs);32}33 34// Calculates intersection of two sets of regions in O(N log N) time.35void Intersect(ArrayRef<Range> a, ArrayRef<Range> b,36               InternalMmapVectorNoCtor<Range> &output);37 38}  // namespace __sanitizer39 40#endif  // SANITIZER_RANGE_H41