37 lines · c
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-exception6//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_H14#define TSAN_IGNORESET_H15 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 __tsan35 36#endif // TSAN_IGNORESET_H37