1*9355d0dcSJonathan Peyton // RUN: %libomp-compile && env KMP_AFFINITY=compact %libomp-run 2*9355d0dcSJonathan Peyton 3*9355d0dcSJonathan Peyton #include <stdio.h> 4*9355d0dcSJonathan Peyton #include <stdint.h> 5*9355d0dcSJonathan Peyton #include <omp.h> 6*9355d0dcSJonathan Peyton #include "omp_testsuite.h" 7*9355d0dcSJonathan Peyton test_nested_affinity_bug()8*9355d0dcSJonathan Peytonint test_nested_affinity_bug() { 9*9355d0dcSJonathan Peyton int a = 0; 10*9355d0dcSJonathan Peyton omp_set_nested(1); 11*9355d0dcSJonathan Peyton #pragma omp parallel num_threads(2) shared(a) 12*9355d0dcSJonathan Peyton { 13*9355d0dcSJonathan Peyton #pragma omp parallel num_threads(2) shared(a) proc_bind(close) 14*9355d0dcSJonathan Peyton { 15*9355d0dcSJonathan Peyton #pragma omp atomic 16*9355d0dcSJonathan Peyton a++; 17*9355d0dcSJonathan Peyton } 18*9355d0dcSJonathan Peyton } 19*9355d0dcSJonathan Peyton return 1; 20*9355d0dcSJonathan Peyton } 21*9355d0dcSJonathan Peyton main()22*9355d0dcSJonathan Peytonint main() { 23*9355d0dcSJonathan Peyton int i; 24*9355d0dcSJonathan Peyton int num_failed = 0; 25*9355d0dcSJonathan Peyton 26*9355d0dcSJonathan Peyton for (i = 0; i < REPETITIONS; i++) { 27*9355d0dcSJonathan Peyton if (!test_nested_affinity_bug()) { 28*9355d0dcSJonathan Peyton num_failed++; 29*9355d0dcSJonathan Peyton } 30*9355d0dcSJonathan Peyton } 31*9355d0dcSJonathan Peyton return num_failed; 32*9355d0dcSJonathan Peyton } 33