| //===-- tsan_ignoreset.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 |
| // |
| //===----------------------------------------------------------------------===// |
| // |
| // This file is a part of ThreadSanitizer (TSan), a race detector. |
| // |
| // IgnoreSet holds a set of stack traces where ignores were enabled. |
| //===----------------------------------------------------------------------===// |
| #ifndef TSAN_IGNORESET_H |
| #define TSAN_IGNORESET_H |
| |
| #include "tsan_defs.h" |
| |
| namespace __tsan { |
| |
| class IgnoreSet { |
| public: |
| IgnoreSet(); |
| void Add(StackID stack_id); |
| void Reset() { size_ = 0; } |
| uptr Size() const { return size_; } |
| StackID At(uptr i) const; |
| |
| private: |
| static constexpr uptr kMaxSize = 16; |
| uptr size_; |
| StackID stacks_[kMaxSize]; |
| }; |
| |
| } // namespace __tsan |
| |
| #endif // TSAN_IGNORESET_H |