blob: 2629788ee91584a223b45055a59a2207e0615376 [file] [log] [blame]
Jonas Hahnfeld50fed042016-11-07 15:58:36 +00001/*
Jonathan Peytonde4749b2016-12-14 23:01:24 +00002 * tsan_annotations.cpp -- ThreadSanitizer annotations to support data
Jonas Hahnfeld50fed042016-11-07 15:58:36 +00003 * race detection in OpenMP programs.
4 */
5
Jonas Hahnfeld50fed042016-11-07 15:58:36 +00006//===----------------------------------------------------------------------===//
7//
8// The LLVM Compiler Infrastructure
9//
10// This file is dual licensed under the MIT and the University of Illinois Open
11// Source Licenses. See LICENSE.txt for details.
12//
13//===----------------------------------------------------------------------===//
14
15#include "tsan_annotations.h"
16
17#include <stdio.h>
18
19typedef unsigned long uptr;
Jonathan Peyton30419822017-05-12 18:01:32 +000020typedef signed long sptr;
Jonas Hahnfeld50fed042016-11-07 15:58:36 +000021
Jonathan Peyton30419822017-05-12 18:01:32 +000022extern "C" __attribute__((weak)) void AnnotateHappensBefore(const char *f,
23 int l, uptr addr) {}
24extern "C" __attribute__((weak)) void AnnotateHappensAfter(const char *f, int l,
25 uptr addr) {}
26extern "C" __attribute__((weak)) void AnnotateCondVarSignal(const char *f,
27 int l, uptr cv) {}
28extern "C" __attribute__((weak)) void AnnotateCondVarSignalAll(const char *f,
29 int l, uptr cv) {
30}
31extern "C" __attribute__((weak)) void AnnotateMutexIsNotPHB(const char *f,
32 int l, uptr mu) {}
33extern "C" __attribute__((weak)) void AnnotateCondVarWait(const char *f, int l,
34 uptr cv, uptr lock) {}
35extern "C" __attribute__((weak)) void AnnotateRWLockCreate(const char *f, int l,
36 uptr m) {}
37extern "C" __attribute__((weak)) void
38AnnotateRWLockCreateStatic(const char *f, int l, uptr m) {}
39extern "C" __attribute__((weak)) void AnnotateRWLockDestroy(const char *f,
40 int l, uptr m) {}
41extern "C" __attribute__((weak)) void
42AnnotateRWLockAcquired(const char *f, int l, uptr m, uptr is_w) {}
43extern "C" __attribute__((weak)) void
44AnnotateRWLockReleased(const char *f, int l, uptr m, uptr is_w) {}
45extern "C" __attribute__((weak)) void AnnotateTraceMemory(const char *f, int l,
46 uptr mem) {}
47extern "C" __attribute__((weak)) void AnnotateFlushState(const char *f, int l) {
48}
49extern "C" __attribute__((weak)) void AnnotateNewMemory(const char *f, int l,
50 uptr mem, uptr size) {}
51extern "C" __attribute__((weak)) void AnnotateNoOp(const char *f, int l,
52 uptr mem) {}
53extern "C" __attribute__((weak)) void AnnotateFlushExpectedRaces(const char *f,
54 int l) {}
55extern "C" __attribute__((weak)) void
56AnnotateEnableRaceDetection(const char *f, int l, int enable) {}
57extern "C" __attribute__((weak)) void
58AnnotateMutexIsUsedAsCondVar(const char *f, int l, uptr mu) {}
59extern "C" __attribute__((weak)) void AnnotatePCQGet(const char *f, int l,
60 uptr pcq) {}
61extern "C" __attribute__((weak)) void AnnotatePCQPut(const char *f, int l,
62 uptr pcq) {}
63extern "C" __attribute__((weak)) void AnnotatePCQDestroy(const char *f, int l,
64 uptr pcq) {}
65extern "C" __attribute__((weak)) void AnnotatePCQCreate(const char *f, int l,
66 uptr pcq) {}
67extern "C" __attribute__((weak)) void AnnotateExpectRace(const char *f, int l,
68 uptr mem, char *desc) {
69}
70extern "C" __attribute__((weak)) void
71AnnotateBenignRaceSized(const char *f, int l, uptr mem, uptr size, char *desc) {
72}
73extern "C" __attribute__((weak)) void AnnotateBenignRace(const char *f, int l,
74 uptr mem, char *desc) {
75}
76extern "C" __attribute__((weak)) void AnnotateIgnoreReadsBegin(const char *f,
77 int l) {}
78extern "C" __attribute__((weak)) void AnnotateIgnoreReadsEnd(const char *f,
79 int l) {}
80extern "C" __attribute__((weak)) void AnnotateIgnoreWritesBegin(const char *f,
81 int l) {}
82extern "C" __attribute__((weak)) void AnnotateIgnoreWritesEnd(const char *f,
83 int l) {}
84extern "C" __attribute__((weak)) void AnnotateIgnoreSyncBegin(const char *f,
85 int l) {}
86extern "C" __attribute__((weak)) void AnnotateIgnoreSyncEnd(const char *f,
87 int l) {}
88extern "C" __attribute__((weak)) void
89AnnotatePublishMemoryRange(const char *f, int l, uptr addr, uptr size) {}
90extern "C" __attribute__((weak)) void
91AnnotateUnpublishMemoryRange(const char *f, int l, uptr addr, uptr size) {}
92extern "C" __attribute__((weak)) void AnnotateThreadName(const char *f, int l,
93 char *name) {}
94extern "C" __attribute__((weak)) void
95WTFAnnotateHappensBefore(const char *f, int l, uptr addr) {}
96extern "C" __attribute__((weak)) void
97WTFAnnotateHappensAfter(const char *f, int l, uptr addr) {}
98extern "C" __attribute__((weak)) void
99WTFAnnotateBenignRaceSized(const char *f, int l, uptr mem, uptr sz,
100 char *desc) {}
101extern "C" __attribute__((weak)) int RunningOnValgrind() { return 0; }
102extern "C" __attribute__((weak)) double ValgrindSlowdown(void) { return 0; }
103extern "C" __attribute__((weak)) const char __attribute__((weak)) *
104 ThreadSanitizerQuery(const char *query) {
105 return 0;
106}
107extern "C" __attribute__((weak)) void
108AnnotateMemoryIsInitialized(const char *f, int l, uptr mem, uptr sz) {}