1! { dg-do run } 2program stack 3 implicit none 4 integer id 5 integer ilocs(2) 6 integer omp_get_thread_num, foo 7 call omp_set_num_threads (2) 8!$omp parallel private (id) 9 id = omp_get_thread_num() + 1 10 ilocs(id) = foo() 11!$omp end parallel 12 ! Check that the two threads are not sharing a location for 13 ! the array x in foo() 14 if (ilocs(1) .eq. ilocs(2)) call abort 15end program stack 16 17integer function foo () 18 implicit none 19 real x(100,100) 20 foo = loc(x) 21end function foo 22