adjustr.f90   [plain text]


! pr 15294 - [gfortran] ADJUSTR intrinsic accesses corrupted pointer
!
  program test_adjustr
  implicit none
  integer test_cases
  parameter (test_cases=13)
  integer i
  character(len=10) s1(test_cases), s2(test_cases)
  s1(1)='A'
  s2(1)='         A'
  s1(2)='AB'
  s2(2)='        AB'
  s1(3)='ABC'
  s2(3)='       ABC'
  s1(4)='ABCD'
  s2(4)='      ABCD'
  s1(5)='ABCDE'
  s2(5)='     ABCDE'
  s1(6)='ABCDEF'
  s2(6)='    ABCDEF'
  s1(7)='ABCDEFG'
  s2(7)='   ABCDEFG'
  s1(8)='ABCDEFGH'
  s2(8)='  ABCDEFGH'
  s1(9)='ABCDEFGHI'
  s2(9)=' ABCDEFGHI'
  s1(10)='ABCDEFGHIJ'
  s2(10)='ABCDEFGHIJ'
  s1(11)=''
  s2(11)=''
  s1(12)=' '
  s2(12)=' '
  s1(13)='          '
  s2(13)='          '
  do I = 1,test_cases
     print*,i
     print*, 's1          = "', s1(i), '"'
     print*, 's2          = "', s2(i), '"'
     print*, 'adjustr(s1) = "', adjustr(s1(i)), '"'
     if (adjustr(s1(i)).ne.s2(i)) then
         print*,'fail'
         call abort
     endif
  enddo
   
  end program test_adjustr