xref: /llvm-project/openmp/tools/archer/tests/parallel/parallel-nosuppression.c (revision 69f87400a85e13482c535365bb19272a15d054b9)
1*23419bfdSJoachim Protze /*
2*23419bfdSJoachim Protze  * parallel-nosuppression.c -- Archer testcase
3*23419bfdSJoachim Protze  */
4*23419bfdSJoachim Protze 
5*23419bfdSJoachim Protze //===----------------------------------------------------------------------===//
6*23419bfdSJoachim Protze //
7*23419bfdSJoachim Protze // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
8*23419bfdSJoachim Protze //
9*23419bfdSJoachim Protze // See tools/archer/LICENSE.txt for details.
10*23419bfdSJoachim Protze // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
11*23419bfdSJoachim Protze //
12*23419bfdSJoachim Protze //===----------------------------------------------------------------------===//
13*23419bfdSJoachim Protze 
14*23419bfdSJoachim Protze 
15*23419bfdSJoachim Protze // RUN: %libarcher-compile-and-run-nosuppression | FileCheck %s
16*23419bfdSJoachim Protze // REQUIRES: tsan
17*23419bfdSJoachim Protze #include <omp.h>
18*23419bfdSJoachim Protze #include <stdio.h>
19*23419bfdSJoachim Protze 
main(int argc,char * argv[])20*23419bfdSJoachim Protze int main(int argc, char *argv[]) {
21*23419bfdSJoachim Protze   int var = 0;
22*23419bfdSJoachim Protze 
23*23419bfdSJoachim Protze #pragma omp parallel num_threads(2) shared(var)
24*23419bfdSJoachim Protze   {
25*23419bfdSJoachim Protze     if (omp_get_thread_num() == 1) {
26*23419bfdSJoachim Protze       var++;
27*23419bfdSJoachim Protze     }
28*23419bfdSJoachim Protze   } // implicit barrier
29*23419bfdSJoachim Protze 
30*23419bfdSJoachim Protze   var++;
31*23419bfdSJoachim Protze 
32*23419bfdSJoachim Protze   fprintf(stderr, "DONE\n");
33*23419bfdSJoachim Protze   int error = (var != 2);
34*23419bfdSJoachim Protze   return error;
35*23419bfdSJoachim Protze }
36*23419bfdSJoachim Protze 
37*23419bfdSJoachim Protze // CHECK: Warning: please export TSAN_OPTIONS
38*23419bfdSJoachim Protze // CHECK: DONE
39