summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gfortran.dg/assumed_charlen_sharing.f90
blob: 0c1c38a87e269faef2d387f66fc72c2d6f2c1931 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
! This testcase was miscompiled, because ts.cl
! in function bar was initially shared between both
! dummy arguments.  Although it was later unshared,
! all expressions which copied ts.cl from bar2
! before that used incorrectly bar1's length
! instead of bar2.
! { dg-do run }

subroutine foo (foo1, foo2)
  implicit none
  integer, intent(in) :: foo2
  character(*), intent(in) :: foo1(foo2)
end subroutine foo

subroutine bar (bar1, bar2)
  implicit none
  character(*), intent(in) :: bar1, bar2

  call foo ((/ bar2 /), 1)
end subroutine bar

program test
  character(80) :: str1
  character(5) :: str2

  str1 = 'String'
  str2 = 'Strng'
  call bar (str2, str1)
end program test