https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95947

--- Comment #2 from urbanjost at comcast dot net ---
Per feedback made test more like a unit test:

TEST PROGRAM:
   character(len=:),allocatable  :: m(:) !!NOTE: WORKS WITH len=10 instead of
len=:
   logical :: passed
      m = [ character(len=10) :: 'ape','bat','cat','dog','eel','fly','gnu']
      m = pack( m, mask=m(:)(2:2) == 'a' )

      print *, "m = ", m,                     "; expected is ['bat','cat']"
      passed=all(m.eq.['bat','cat'])

      print *, "size(m) =     ", size(m),     "; expected is 2"
      passed=size(m).eq.2.and.passed

      print *, "len(m) =      ", len(m),      "; expected is 10"
      passed=len(m).eq.10.and.passed

      print *, "len_trim(m) = ", len_trim(m), "; expected is 3 3"
      passed=all(len_trim(m).eq.[3,3]).and.passed
      if(passed)then
         stop 'PASSED'
      else
         write(*,'("FAILED")')
         stop 1
      endif
   end

RESULTS:

    m =                     ; expected is ['bat','cat']
    size(m) =                2 ; expected is 2
    len(m) =                10 ; expected is 10
    len_trim(m) =            0           0 ; expected is 3 3
   FAILED
   STOP 1

Reply via email to