26 lines · c
1// RUN: %libomp-compile2// RUN: env KMP_AFFINITY=disabled %libomp-run3// RUN: env KMP_AFFINITY=disabled,reset %libomp-run4// REQUIRES: affinity5#include <stdio.h>6#include <stdlib.h>7#include <omp.h>8 9int main() {10 int nthreads, correct_value;;11 int a = 0;12 #pragma omp parallel reduction(+: a)13 {14 a += omp_get_thread_num();15 #pragma omp single16 nthreads = omp_get_num_threads();17 }18 correct_value = nthreads * (nthreads - 1) / 2;19 if (a != correct_value) {20 printf("Incorrect value: %d should be %d\n", a, correct_value);21 return EXIT_FAILURE;22 }23 return EXIT_SUCCESS;24}25 26