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