0
|
1 ! { dg-do run }
|
|
2 program 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
|
|
15 end program stack
|
|
16
|
|
17 integer function foo ()
|
|
18 implicit none
|
|
19 real x(100,100)
|
|
20 foo = loc(x)
|
|
21 end function foo
|