annotate gcc/testsuite/gfortran.dg/lto/20100222-1_0.f03 @ 158:494b0b89df80 default tip

...
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Mon, 25 May 2020 18:13:55 +0900
parents 04ced10e8804
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
111
kono
parents:
diff changeset
1 ! { dg-lto-do run }
kono
parents:
diff changeset
2 ! This testcase tests c_funloc and c_funptr from iso_c_binding. It uses
kono
parents:
diff changeset
3 ! functions defined in c_funloc_tests_3_funcs.c.
kono
parents:
diff changeset
4 module c_funloc_tests_3
kono
parents:
diff changeset
5 implicit none
kono
parents:
diff changeset
6 contains
kono
parents:
diff changeset
7 function ffunc(j) bind(c)
kono
parents:
diff changeset
8 use iso_c_binding, only: c_funptr, c_int
kono
parents:
diff changeset
9 integer(c_int) :: ffunc
kono
parents:
diff changeset
10 integer(c_int), value :: j
kono
parents:
diff changeset
11 ffunc = -17*j
kono
parents:
diff changeset
12 end function ffunc
kono
parents:
diff changeset
13 end module c_funloc_tests_3
kono
parents:
diff changeset
14 program main
kono
parents:
diff changeset
15 use iso_c_binding, only: c_funptr, c_funloc
kono
parents:
diff changeset
16 use c_funloc_tests_3, only: ffunc
kono
parents:
diff changeset
17 implicit none
kono
parents:
diff changeset
18 interface
kono
parents:
diff changeset
19 function returnFunc() bind(c,name="returnFunc")
kono
parents:
diff changeset
20 use iso_c_binding, only: c_funptr
kono
parents:
diff changeset
21 type(c_funptr) :: returnFunc
kono
parents:
diff changeset
22 end function returnFunc
kono
parents:
diff changeset
23 subroutine callFunc(func,pass,compare) bind(c,name="callFunc")
kono
parents:
diff changeset
24 use iso_c_binding, only: c_funptr, c_int
kono
parents:
diff changeset
25 type(c_funptr), value :: func
kono
parents:
diff changeset
26 integer(c_int), value :: pass,compare
kono
parents:
diff changeset
27 end subroutine callFunc
kono
parents:
diff changeset
28 end interface
kono
parents:
diff changeset
29 type(c_funptr) :: p
kono
parents:
diff changeset
30 p = returnFunc()
kono
parents:
diff changeset
31 call callFunc(p, 13,3*13)
kono
parents:
diff changeset
32 p = c_funloc(ffunc)
kono
parents:
diff changeset
33 call callFunc(p, 21,-17*21)
kono
parents:
diff changeset
34 end program main