30 lines
684 B
Fortran
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
|