rt_gccstream/gcc/testsuite/gfortran.dg/assumed_charlen_sharing.f90

30 lines
684 B
Fortran

! 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