CCTLib
Calling-context and data-object attribution library for Intel Pin
omp_race_tn_critical.c
Go to the documentation of this file.
1 // True-negative victim: the same increment is guarded by a critical
2 // section, so no race. Same shape as the TP victim for direct comparison.
3 #include <stdio.h>
4 #include <omp.h>
5 
6 static volatile int counter;
7 static volatile int sink;
8 
9 int main(int argc, char** argv) {
10  (void)argc; (void)argv;
11  counter = 0;
12  #pragma omp parallel num_threads(2)
13  {
14  for (int i = 0; i < 1000; ++i) {
15  #pragma omp critical
16  counter++;
17  }
18  }
19  sink = counter;
20  return 0;
21 }
int main(int argc, char **argv)
static volatile int counter
static volatile int sink