diff options
Diffstat (limited to 'gcc/testsuite/gfortran.dg/char_pointer_dependency.f90')
-rw-r--r-- | gcc/testsuite/gfortran.dg/char_pointer_dependency.f90 | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/gcc/testsuite/gfortran.dg/char_pointer_dependency.f90 b/gcc/testsuite/gfortran.dg/char_pointer_dependency.f90 new file mode 100644 index 000000000..ef2d783e1 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/char_pointer_dependency.f90 @@ -0,0 +1,26 @@ +! { dg-do run } +! { dg-options "-std=legacy" } +! +! Test assignments from character pointer functions with dependencies +! are correctly resolved. +! Provided by Paul Thomas pault@gcc.gnu.org +program char_pointer_dependency + implicit none + character*4, pointer :: c2(:) + allocate (c2(2)) + c2 = (/"abcd","efgh"/) + c2 = afoo (c2) + if (c2(1) /= "efgh") call abort () + if (c2(2) /= "abcd") call abort () + deallocate (c2) +contains + function afoo (ac0) result (ac1) + integer :: j + character*4 :: ac0(:) + character*4, pointer :: ac1(:) + allocate (ac1(2)) + do j = 1,2 + ac1(j) = ac0(3-j) + end do + end function afoo +end program char_pointer_dependency |