brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1004 B · 4e25112 Raw
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