1! { dg-do run } 2! 3 character(*), parameter :: chrs = '-+.0123456789eEdD' 4 character(*), parameter :: expr = '-+.0123456789eEdD' 5 integer :: i 6 7 if (index(chrs(:), expr) /= 1) call abort 8 if (index(chrs(14:), expr) /= 0) call abort 9 if (index(chrs(:12), expr) /= 0) call abort 10 if (index(chrs, expr(:)) /= 1) call abort 11 if (index(chrs, expr(1:)) /= 1) call abort 12 if (index(chrs, expr(:1)) /= 1) call abort 13 14 if (foo(expr) /= 1) call abort 15 if (foo(expr) /= 1) call abort 16 if (foo(expr) /= 1) call abort 17 if (foo(expr(:)) /= 1) call abort 18 if (foo(expr(1:)) /= 1) call abort 19 if (foo(expr(:1)) /= 1) call abort 20 21 call bar(expr) 22 23contains 24 subroutine bar(expr) 25 character(*), intent(in) :: expr 26 character(*), parameter :: chrs = '-+.0123456789eEdD' 27 integer :: foo 28 29 if (index(chrs(:), expr) /= 1) call abort 30 if (index(chrs(14:), expr) /= 0) call abort 31 if (index(chrs(:12), expr) /= 0) call abort 32 if (index(chrs, expr(:)) /= 1) call abort 33 if (index(chrs, expr(1:)) /= 1) call abort 34 if (index(chrs, expr(:1)) /= 1) call abort 35 end subroutine bar 36 37 integer function foo(expr) 38 character(*), intent(in) :: expr 39 character(*), parameter :: chrs = '-+.0123456789eEdD' 40 41 foo = index(chrs, expr) 42 end function foo 43 44end 45