Daily bump.
[gcc-git-mirror.git] / libgomp / testsuite / libgomp.fortran / declare-target-indirect-1.f90
blob39a91dfcdcacc2d118617ff633a8653245247d53
1 ! { dg-do run }
3 module m
4 contains
5 integer function foo ()
6 !$omp declare target to (foo) indirect
7 foo = 5
8 end function
10 integer function bar ()
11 !$omp declare target to (bar) indirect
12 bar = 8
13 end function
15 integer function baz ()
16 !$omp declare target to (baz) indirect
17 baz = 11
18 end function
19 end module
21 program main
22 use m
23 implicit none
25 integer :: x, expected
26 procedure (foo), pointer :: foo_ptr, bar_ptr, baz_ptr
28 foo_ptr => foo
29 bar_ptr => bar
30 baz_ptr => baz
32 expected = foo () + bar () + baz ()
34 !$omp target map (to: foo_ptr, bar_ptr, baz_ptr) map (from: x)
35 x = foo_ptr () + bar_ptr () + baz_ptr ()
36 !$omp end target
38 stop x - expected
39 end program