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