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/] [char_result_6.f90] - Rev 302
Compare with Previous | Blame | View Log
! Like char_result_5.f90, but the function arguments are pointers to scalars.! { dg-do run }pure function select (selector, iftrue, iffalse)logical, intent (in) :: selectorinteger, intent (in) :: iftrue, iffalseinteger :: selectif (selector) thenselect = iftrueelseselect = iffalseend ifend function selectprogram mainimplicit noneinterfacepure function select (selector, iftrue, iffalse)logical, intent (in) :: selectorinteger, intent (in) :: iftrue, iffalseinteger :: selectend function selectend interfacetype pairinteger :: left, rightend type pairinteger, target :: iinteger, pointer :: ipreal, target :: rreal, pointer :: rplogical, target :: llogical, pointer :: lpcomplex, target :: ccomplex, pointer :: cpcharacter, target :: chcharacter, pointer :: chptype (pair), target :: ptype (pair), pointer :: ppi = 100r = 50.5l = .true.c = (10.9, 11.2)ch = '1'p%left = 40p%right = 50ip => irp => rlp => lcp => cchp => chpp => pcall test (f1 (ip), 200)call test (f2 (rp), 100)call test (f3 (lp), 50)call test (f4 (cp), 10)call test (f5 (chp), 11)call test (f6 (pp), 145)containsfunction f1 (i)integer, pointer :: icharacter (len = abs (i) * 2) :: f1f1 = ''end function f1function f2 (r)real, pointer :: rcharacter (len = floor (r) * 2) :: f2f2 = ''end function f2function f3 (l)logical, pointer :: lcharacter (len = select (l, 50, 55)) :: f3f3 = ''end function f3function f4 (c)complex, pointer :: ccharacter (len = int (c)) :: f4f4 = ''end function f4function f5 (c)character, pointer :: ccharacter (len = scan ('123456789', c) + 10) :: f5f5 = ''end function f5function f6 (p)type (pair), pointer :: pinteger :: icharacter (len = sum ((/ p%left, p%right, (i, i = 1, 10) /))) :: f6f6 = ''end function f6subroutine test (string, length)character (len = *) :: stringinteger, intent (in) :: lengthif (len (string) .ne. length) call abortend subroutine testend program main
