1 // { dg-do run } 2 // { dg-require-effective-target tls_runtime } 3 4 #include <omp.h> 5 6 extern "C" void abort (void); 7 8 int thr = 32; 9 #pragma omp threadprivate (thr) 10 11 int main(void)12main (void) 13 { 14 int l = 0; 15 16 omp_set_dynamic (0); 17 omp_set_num_threads (6); 18 19 #pragma omp parallel copyin (thr) reduction (||:l) 20 { 21 l = thr != 32; 22 thr = omp_get_thread_num () + 11; 23 } 24 25 if (l || thr != 11) 26 abort (); 27 28 #pragma omp parallel reduction (||:l) 29 l = thr != omp_get_thread_num () + 11; 30 31 if (l) 32 abort (); 33 return 0; 34 } 35