]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR fortran/70040 (ICE in gimplify.c with deferred-length strings)
authorThomas Koenig <tkoenig@gcc.gnu.org>
Mon, 8 Aug 2016 06:29:16 +0000 (06:29 +0000)
committerThomas Koenig <tkoenig@gcc.gnu.org>
Mon, 8 Aug 2016 06:29:16 +0000 (06:29 +0000)
2016-08-08  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR fortran/70040
Backport from trunk
* gfortran.dg/pr70040.f90:  New testcase.

From-SVN: r239229

gcc/testsuite/ChangeLog
gcc/testsuite/gfortran.dg/pr70040.f90 [new file with mode: 0644]

index d78dded2ad651019ea0db4eaef6594e974d6c55b..28499f0c7c5aa3667834a163e92a9399548fd248 100644 (file)
@@ -1,3 +1,9 @@
+2016-08-08  Thomas Koenig  <tkoenig@gcc.gnu.org>
+
+       PR fortran/70040
+       Backport from trunk
+       * gfortran.dg/pr70040.f90:  New testcase.
+
 2016-08-05  Nathan Sidwell  <nathan@acm.org>
 
        PR c++/68724
diff --git a/gcc/testsuite/gfortran.dg/pr70040.f90 b/gcc/testsuite/gfortran.dg/pr70040.f90
new file mode 100644 (file)
index 0000000..080083e
--- /dev/null
@@ -0,0 +1,19 @@
+! { dg-do compile }
+! PR 70040 - used to cause an ICE.
+! Test case by Martin Reinecke
+program bugrep
+  implicit none
+  type :: string
+    character (len=:), allocatable :: s
+  end type
+
+  integer l
+  type(string), allocatable, dimension(:) :: foo
+  character(len=:),allocatable ::tmp
+  allocate(foo(20))
+  do l= 1, 20
+    tmp = foo(5)%s
+    foo(5)%s = foo(l)%s
+    foo(l)%s = tmp
+  enddo
+end program