Mercurial > hg > CbC > CbC_gcc
view gcc/testsuite/gfortran.dg/interface_25.f90 @ 128:fe568345ddd5
fix CbC-example
author | mir3636 |
---|---|
date | Wed, 11 Apr 2018 19:32:28 +0900 |
parents | 04ced10e8804 |
children |
line wrap: on
line source
! { dg-do compile } ! Tests the fix for PR39295, in which the check of the interfaces ! at lines 25 and 42 failed because opfunc1 is identified as a ! function by usage, whereas opfunc2 is not. ! ! Contributed by Jon Hurst <jhurst@ucar.edu> ! MODULE funcs CONTAINS INTEGER FUNCTION test1(a,b,opfunc1) INTEGER :: a,b INTEGER, EXTERNAL :: opfunc1 test1 = opfunc1( a, b ) END FUNCTION test1 INTEGER FUNCTION sumInts(a,b) INTEGER :: a,b sumInts = a + b END FUNCTION sumInts END MODULE funcs PROGRAM test USE funcs INTEGER :: rs INTEGER, PARAMETER :: a = 2, b = 1 rs = recSum( a, b, test1, sumInts ) write(*,*) "Results", rs CONTAINS RECURSIVE INTEGER FUNCTION recSum( a,b,UserFunction,UserOp ) RESULT( res ) IMPLICIT NONE INTEGER :: a,b INTERFACE INTEGER FUNCTION UserFunction(a,b,opfunc2) INTEGER :: a,b INTEGER, EXTERNAL :: opfunc2 END FUNCTION UserFunction END INTERFACE INTEGER, EXTERNAL :: UserOp res = UserFunction( a,b, UserOp ) if( res .lt. 10 ) then res = recSum( a, res, UserFunction, UserOp ) end if END FUNCTION recSum END PROGRAM test