URL
https://opencores.org/ocsvn/openrisc_me/openrisc_me/trunk
Subversion Repositories openrisc_me
[/] [openrisc/] [trunk/] [gnu-src/] [gcc-4.5.1/] [gcc/] [testsuite/] [gfortran.dg/] [proc_ptr_comp_8.f90] - Rev 302
Compare with Previous | Blame | View Log
! { dg-do run }!! PR 40164: Fortran 2003: "Arrays of procedure pointers" (using PPCs)!! Original test case by Barron Bichon <barron.bichon@swri.org>! Adapted by Janus Weil <janus@gcc.gnu.org>PROGRAM test_progABSTRACT INTERFACEFUNCTION fn_template(n,x) RESULT(y)INTEGER, INTENT(in) :: nREAL, INTENT(in) :: x(n)REAL :: y(n)END FUNCTION fn_templateEND INTERFACETYPE PPAPROCEDURE(fn_template), POINTER, NOPASS :: fEND TYPE PPATYPE ProcPointerArrayPROCEDURE(add), POINTER, NOPASS :: fEND TYPE ProcPointerArrayTYPE (ProcPointerArray) :: f_array(3)PROCEDURE(add), POINTER :: freal :: rf_array(1)%f => addf => f_array(1)%ff_array(2)%f => subf_array(3)%f => f_array(1)%fr = f(1.,2.)if (abs(r-3.)>1E-3) call abort()r = f_array(1)%f(4.,2.)if (abs(r-6.)>1E-3) call abort()r = f_array(2)%f(5.,3.)if (abs(r-2.)>1E-3) call abort()if (abs(f_array(1)%f(1.,3.)-f_array(3)%f(2.,2.))>1E-3) call abort()CONTAINSFUNCTION add(a,b) RESULT(sum)REAL, INTENT(in) :: a, bREAL :: sumsum = a + bEND FUNCTION addFUNCTION sub(a,b) RESULT(diff)REAL, INTENT(in) :: a, bREAL :: diffdiff = a - bEND FUNCTION subEND PROGRAM test_prog
