diff options
Diffstat (limited to 'gcc/testsuite/gfortran.dg/string_compare_2.f90')
-rw-r--r-- | gcc/testsuite/gfortran.dg/string_compare_2.f90 | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/gcc/testsuite/gfortran.dg/string_compare_2.f90 b/gcc/testsuite/gfortran.dg/string_compare_2.f90 new file mode 100644 index 000000000..966ed554a --- /dev/null +++ b/gcc/testsuite/gfortran.dg/string_compare_2.f90 @@ -0,0 +1,39 @@ +! { dg-do run } + +! PR fortran/37099 +! Check for correct results when comparing array-section-substrings. + +! This is the original test from the PR. +! Contributed by Dominique d'Humieres <dominiq@lps.ens.fr> + +module xparams + integer,parameter :: exprbeg=100,exprend=154 + character(*),dimension(exprbeg:exprend),parameter :: & + exprs=(/'nint() ','log10() ','sqrt() ','acos() ','asin() ', & + 'atan() ','cosh() ','sinh() ','tanh() ','int() ', & + 'cos() ','sin() ','tan() ','exp() ','log() ','abs() ',& + 'delta() ','step() ','rect() ','max(,) ','min(,) ','bj0() ',& + 'bj1() ','bjn(,) ','by0() ','by1() ','byn(,) ','logb(,) ',& + 'erf() ','erfc() ','lgamma()','gamma() ','csch() ','sech() ',& + 'coth() ','lif(,,) ','gaus() ','sinc() ','atan2(,)','mod(,) ',& + 'nthrt(,)','ramp() ','fbi() ','fbiq() ','uran(,) ','aif(,,,)',& + 'sgn() ','cbrt() ','fact() ','somb() ','bk0() ','bk1() ',& + 'bkn(,) ','bbi(,,) ','bbiq(,,)'/) + logical :: tmp(55,26) + character(26) :: al = 'abcdefghijklmnopqrstuvwxyz' +end + +program pack_bug + use xparams + do i = 1, 1 + tmp(:,i) = (exprs(:)(1:1)==al(i:i)) + print '(55L1)', exprs(:)(1:1)=='a' + print '(55L1)', tmp(:,i) + + if (any ((exprs(:)(1:1)=='a') .neqv. tmp(:,i))) then + call abort () + end if + end do +end + +! { dg-final { cleanup-modules "xparams" } } |