OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [gcc/] [testsuite/] [gfortran.dg/] [char_length_7.f90] - Blame information for rev 694

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 694 jeremybenn
! { dg-do run }
2
! Test the fix for PR31879 in which the concatenation operators below
3
! would cause ICEs because the character lengths were never resolved.
4
!
5
! Contributed by Vivek Rao 
6
!
7
module str_mod
8
  character(3) :: mz(2) = (/"fgh","ijk"/)
9
contains
10
  function ccopy(yy) result(xy)
11
    character (len=*), intent(in) :: yy(:)
12
    character (len=5) :: xy(size(yy))
13
    xy = yy
14
  end function ccopy
15
end module str_mod
16
!
17
program xx
18
  use str_mod, only: ccopy, mz
19
  implicit none
20
  character(2) :: z = "zz"
21
  character(3) :: zz(2) = (/"abc","cde"/)
22
  character(2) :: ans(2)
23
  integer :: i = 2, j = 3
24
  if (any(ccopy("_&_"//(/"A","B"/)//"?") .ne. (/"_&_A?","_&_B?"/))) call abort ()
25
  if (any(ccopy(z//zz) .ne. (/"zzabc","zzcde"/))) call abort ()
26
  if (any(ccopy(z//zz(:)(1:2)) .ne. (/"zzab ","zzcd "/))) call abort ()
27
  if (any(ccopy(z//mz(:)(2:3)) .ne. (/"zzgh ","zzjk "/))) call abort ()
28
 
29
! This was another bug, uncovered when the PR was fixed.
30
  if (any(ccopy(z//mz(:)(i:j)) .ne. (/"zzgh ","zzjk "/))) call abort ()
31
end program xx
32
! { dg-final { cleanup-modules "str_mod" } }

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.