Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/freebsd-src
Path: blob/main/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_ignoreset.cpp
35268 views
1
//===-- tsan_ignoreset.cpp ------------------------------------------------===//
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
//===----------------------------------------------------------------------===//
12
#include "tsan_ignoreset.h"
13
14
namespace __tsan {
15
16
const uptr IgnoreSet::kMaxSize;
17
18
IgnoreSet::IgnoreSet()
19
: size_() {
20
}
21
22
void IgnoreSet::Add(StackID stack_id) {
23
if (size_ == kMaxSize)
24
return;
25
for (uptr i = 0; i < size_; i++) {
26
if (stacks_[i] == stack_id)
27
return;
28
}
29
stacks_[size_++] = stack_id;
30
}
31
32
StackID IgnoreSet::At(uptr i) const {
33
CHECK_LT(i, size_);
34
CHECK_LE(size_, kMaxSize);
35
return stacks_[i];
36
}
37
38
} // namespace __tsan
39
40