diff gcc/testsuite/gfortran.dg/deferred_character_9.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/deferred_character_9.f90	Fri Oct 27 22:46:09 2017 +0900
@@ -0,0 +1,28 @@
+! { dg-do run }
+!
+! Test the fix for PR64324 in which deferred length user ops
+! were being mistaken as assumed length and so rejected.
+!
+! Contributed by Ian Harvey  <ian_harvey@bigpond.com>
+!
+MODULE m
+  IMPLICIT NONE
+  INTERFACE OPERATOR(.ToString.)
+    MODULE PROCEDURE tostring
+  END INTERFACE OPERATOR(.ToString.)
+CONTAINS
+  FUNCTION tostring(arg)
+    INTEGER, INTENT(IN) :: arg
+    CHARACTER(:), ALLOCATABLE :: tostring
+    allocate (character(5) :: tostring)
+    write (tostring, "(I5)") arg
+  END FUNCTION tostring
+END MODULE m
+
+  use m
+  character(:), allocatable :: str
+  integer :: i = 999
+  str = .ToString. i
+  if (str .ne. "  999") call abort
+end
+