summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gfortran.dg/char_pointer_dependency.f90
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/testsuite/gfortran.dg/char_pointer_dependency.f90')
-rw-r--r--gcc/testsuite/gfortran.dg/char_pointer_dependency.f9026
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