1//===-- tsan_ignoreset.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-exception 6// 7//===----------------------------------------------------------------------===// 8// 9// This file is a part of ThreadSanitizer (TSan), a race detector. 10// 11// IgnoreSet holds a set of stack traces where ignores were enabled. 12//===----------------------------------------------------------------------===// 13#ifndef TSAN_IGNORESET_H 14#define TSAN_IGNORESET_H 15 16#include "tsan_defs.h" 17 18namespace __tsan { 19 20class IgnoreSet { 21 public: 22 IgnoreSet(); 23 void Add(StackID stack_id); 24 void Reset() { size_ = 0; } 25 uptr Size() const { return size_; } 26 StackID At(uptr i) const; 27 28 private: 29 static constexpr uptr kMaxSize = 16; 30 uptr size_; 31 StackID stacks_[kMaxSize]; 32}; 33 34} // namespace __tsan 35 36#endif // TSAN_IGNORESET_H 37