]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR fortran/32489 (Endless loop when compiling - middle-end?)
authorJerry DeLisle <jvdelisle@gcc.gnu.org>
Sat, 9 Jan 2010 19:01:41 +0000 (19:01 +0000)
committerJerry DeLisle <jvdelisle@gcc.gnu.org>
Sat, 9 Jan 2010 19:01:41 +0000 (19:01 +0000)
2010-01-09 Jerry DeLisle <jvdelisle@gcc.gnu.org>

PR fortran/32489
* gfortran.dg/array_constructor_33.f90: New test.

PR fortran/20923
Fix ChangeLog entry.

From-SVN: r155773

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

index c2e9144a847b5444af2c59a1e55a1be4fdb15de0..d69926e1acfd0592b52d58e0e04b5316649eb9bb 100644 (file)
@@ -2,6 +2,11 @@
 
        PR fortran/32489
        * gfortran.dg/array_constructor_33.f90: New test.
+
+2010-01-09 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+
+       PR fortran/20923
+       * gfortran.dg/array_constructor_33.f90: New test.
        gfortran.dg/array_function_5.f90: Add credit.
 
 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
diff --git a/gcc/testsuite/gfortran.dg/array_constructor_34.f90 b/gcc/testsuite/gfortran.dg/array_constructor_34.f90
new file mode 100644 (file)
index 0000000..1a0931a
--- /dev/null
@@ -0,0 +1,27 @@
+! { dg-do compile }
+! PR32489 Endless loop when compiling.
+! Derived from fft257.f90, Public domain 2004 James Van Buskirk.
+! Note: The problem solved here was not an infinite loop issue. Middle-end
+! could not handle the array constructor unfolded by the front end.
+! WARNING: Potential resource hog.
+! Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+program test
+   implicit none
+   integer, parameter :: dp = selected_real_kind(15,300)
+   integer, parameter :: N = 257
+   complex(dp) h1(0:N-1)
+   complex(dp) h2(0:N-1)
+   complex(dp) hh(0:N-1)
+   complex(dp), parameter :: ri(2) = (/(1,0),(0,1)/)
+   integer i, j, k, L
+   real(dp) pi
+
+   pi = 4*atan(1.0_dp)
+   do i = 0, N-1
+     do j = 1, 2
+       h2 = 0
+       h2(i) = ri(j)
+       h1 = (/(sum((/(exp(-2*pi*(0,1)*mod(k*L,N)/N)*h2(L),L=0,N-1)/)),k=0,N-1)/)
+     end do
+   end do
+end program test