diff gcc/testsuite/gfortran.dg/char_pointer_dummy.f90 @ 111:04ced10e8804

gcc 7
author kono
date Fri, 27 Oct 2017 22:46:09 +0900
parents
children 84e7813d76e9
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/gcc/testsuite/gfortran.dg/char_pointer_dummy.f90	Fri Oct 27 22:46:09 2017 +0900
@@ -0,0 +1,36 @@
+! { dg-do run }
+! { dg-options "-std=legacy" }
+!
+program char_pointer_dummy
+! Test character pointer dummy arguments, required
+! to fix PR16939 and PR18689
+! Provided by Paul Thomas pault@gcc.gnu.org
+  implicit none
+  character*4                :: c0
+  character*4, pointer       :: c1
+  character*4, pointer       :: c2(:)
+  allocate (c1, c2(1))
+! Check that we have not broken non-pointer characters.
+  c0 = "wxyz"
+  call foo (c0)
+! Now the pointers
+  c1 = "wxyz"
+  call sfoo (c1)
+  c2 = "wxyz"
+  call afoo (c2)
+  deallocate (c1, c2)
+contains
+  subroutine foo (cc1)
+    character*4                :: cc1
+    if (cc1 /= "wxyz") call abort ()
+  end subroutine foo
+  subroutine sfoo (sc1)
+    character*4, pointer       :: sc1
+    if (sc1 /= "wxyz") call abort ()
+  end subroutine sfoo
+  subroutine afoo (ac1)
+    character*4, pointer       :: ac1(:)
+    if (ac1(1) /= "wxyz") call abort ()
+  end subroutine afoo
+end program char_pointer_dummy
+