OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [gcc/] [testsuite/] [gfortran.dg/] [proc_ptr_7.f90] - Blame information for rev 694

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 694 jeremybenn
! { dg-do run }
2
! { dg-additional-sources proc_ptr_7.c }
3
!
4
! PR fortran/32580
5
! Procedure pointer test
6
!
7
! Contributed by Tobias Burnus 
8
 
9
program proc_pointer_test
10
  use iso_c_binding, only: c_int
11
  implicit none
12
 
13
  interface
14
    subroutine assignF(f)
15
      import c_int
16
      procedure(Integer(c_int)), pointer :: f
17
    end subroutine
18
  end interface
19
 
20
  procedure(Integer(c_int)), pointer :: ptr
21
 
22
  call assignF(ptr)
23
  if(ptr() /= 42) call abort()
24
 
25
  ptr => f55
26
  if(ptr() /= 55) call abort()
27
 
28
  call foo(ptr)
29
  if(ptr() /= 65) call abort()
30
 
31
contains
32
 
33
 subroutine foo(a)
34
   procedure(integer(c_int)), pointer :: a
35
   if(a() /= 55) call abort()
36
   a => f65
37
   if(a() /= 65) call abort()
38
 end subroutine foo
39
 
40
 integer(c_int) function f55()
41
    f55 = 55
42
 end function f55
43
 
44
 integer(c_int) function f65()
45
    f65 = 65
46
 end function f65
47
end program proc_pointer_test

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.