view gcc/testsuite/gfortran.dg/assumed_charlen_sharing.f90 @ 127:4c56639505ff

fix function.c and add CbC-example Makefile
author mir3636
date Wed, 11 Apr 2018 18:46:58 +0900
parents 04ced10e8804
children
line wrap: on
line source

! 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