Mercurial > hg > CbC > CbC_gcc
view gcc/testsuite/gfortran.dg/transfer_intrinsic_2.f90 @ 128:fe568345ddd5
fix CbC-example
author | mir3636 |
---|---|
date | Wed, 11 Apr 2018 19:32:28 +0900 |
parents | 04ced10e8804 |
children | 84e7813d76e9 |
line wrap: on
line source
! { dg-do run } ! ! Check the fix for PR34955 in which three bytes would be copied ! from bytes by TRANSFER, instead of the required two and the ! resulting string length would be incorrect. ! ! Contributed by Dominique Dhumieres <dominiq@lps.ens.fr> ! character(len = 1) :: string = "z" character(len = 20) :: tmp = "" tmp = Upper ("abcdefgh") if (trim(tmp) .ne. "ab") call abort () contains Character (len = 20) Function Upper (string) Character(len = *) string integer :: ij i = size (transfer (string,"xy",len (string))) if (i /= len (string)) call abort () Upper = "" Upper(1:2) = & transfer (merge (transfer (string,"xy",len (string)), & string(1:2), .true.), "xy") return end function Upper end