LLVM OpenMP
20.0.0git
tools
archer
tests
races
critical-unrelated.c
Go to the documentation of this file.
1
/*
2
* critical-unrelated.c -- Archer testcase
3
*/
4
//===----------------------------------------------------------------------===//
5
//
6
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
7
//
8
// See tools/archer/LICENSE.txt for details.
9
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
10
//
11
//===----------------------------------------------------------------------===//
12
13
// RUN: %libarcher-compile-and-run-race | FileCheck %s
14
// RUN: %libarcher-compile-and-run-race-noserial | FileCheck %s
15
// REQUIRES: tsan
16
#include <omp.h>
17
#include <stdio.h>
18
19
int
main
(
int
argc,
char
*argv[]) {
20
int
var = 0;
21
22
#pragma omp parallel num_threads(8) shared(var)
23
{
24
#pragma omp critical
25
{
26
// Dummy region.
27
}
28
29
var++;
30
}
31
32
fprintf(stderr,
"DONE\n"
);
33
}
34
35
// CHECK: WARNING: ThreadSanitizer: data race
36
// CHECK-NEXT: {{(Write|Read)}} of size 4
37
// CHECK-NEXT: #0 {{.*}}critical-unrelated.c:29
38
// CHECK: Previous write of size 4
39
// CHECK-NEXT: #0 {{.*}}critical-unrelated.c:29
40
// CHECK: DONE
41
// CHECK: ThreadSanitizer: reported {{[1-7]}} warnings
main
int main()
Definition:
test-touch.c:21
Generated on Wed Feb 5 2025 10:57:22 for LLVM OpenMP by
1.9.6