1! { dg-do run }
2
3! PR fortran/37099
4! Check for correct results when comparing array-section-substrings.
5
6! This is the original test from the PR.
7! Contributed by Dominique d'Humieres <dominiq@lps.ens.fr>
8
9module xparams
10  integer,parameter :: exprbeg=100,exprend=154
11  character(*),dimension(exprbeg:exprend),parameter :: &
12      exprs=(/'nint()  ','log10() ','sqrt()  ','acos()  ','asin()  ',   &
13      'atan()  ','cosh()  ','sinh()  ','tanh()  ','int()   ',           &
14      'cos()   ','sin()   ','tan()   ','exp()   ','log()   ','abs()   ',&
15      'delta() ','step()  ','rect()  ','max(,)  ','min(,)  ','bj0()   ',&
16      'bj1()   ','bjn(,)  ','by0()   ','by1()   ','byn(,)  ','logb(,) ',&
17      'erf()   ','erfc()  ','lgamma()','gamma() ','csch()  ','sech()  ',&
18      'coth()  ','lif(,,) ','gaus()  ','sinc()  ','atan2(,)','mod(,)  ',&
19      'nthrt(,)','ramp()  ','fbi()   ','fbiq()  ','uran(,) ','aif(,,,)',&
20      'sgn()   ','cbrt()  ','fact()  ','somb()  ','bk0()   ','bk1()   ',&
21      'bkn(,)  ','bbi(,,) ','bbiq(,,)'/)
22  logical :: tmp(55,26)
23  character(26) :: al = 'abcdefghijklmnopqrstuvwxyz'
24end
25
26program pack_bug
27  use xparams
28    do i = 1, 1
29      tmp(:,i) = (exprs(:)(1:1)==al(i:i))
30      print '(55L1)', exprs(:)(1:1)=='a'
31      print '(55L1)', tmp(:,i)
32
33      if (any ((exprs(:)(1:1)=='a') .neqv. tmp(:,i))) then
34        call abort ()
35      end if
36    end do
37end
38