OSDN Git Service

2010-12-23 Mikael Morin <mikael@gcc.gnu.org>
authormikael <mikael@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 23 Dec 2010 13:39:06 +0000 (13:39 +0000)
committermikael <mikael@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 23 Dec 2010 13:39:06 +0000 (13:39 +0000)
PR fortran/46978
* gfortran.dg/transpose_intrinsic_func_call_1.f90: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@168207 138bc75d-0d04-0410-961f-82ee72b054a4

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

index 7f0c770..2f81d85 100644 (file)
@@ -1,3 +1,8 @@
+2010-12-23  Mikael Morin  <mikael@gcc.gnu.org>
+
+       PR fortran/46978
+       * gfortran.dg/transpose_intrinsic_func_call_1.f90: New test.
+
 2010-12-23  Nicola Pero  <nicola.pero@meta-innovation.com>
 
        * obj-c.dg/gnu-api-2-class.m: Test that class_addMethod() returns
diff --git a/gcc/testsuite/gfortran.dg/transpose_intrinsic_func_call_1.f90 b/gcc/testsuite/gfortran.dg/transpose_intrinsic_func_call_1.f90
new file mode 100644 (file)
index 0000000..53d727d
--- /dev/null
@@ -0,0 +1,26 @@
+! { dg-do run }
+!
+! PR fortran/46978
+! The coor assignment was using the wrong loop bounds if the argument to
+! transpose was an intrinsic function call
+!
+! Original testcase by Martien Huelsen <m.a.hulsen@tue.nl>
+! Reduced by Tobias Burnus <burnus@net-b.de>
+
+program elastic2
+  implicit none
+  real, allocatable, dimension(:,:) :: coor
+  real, allocatable, dimension(:) :: a
+  integer :: nno
+  nno = 3
+  allocate(a(2*nno))
+  call two()
+  coor = transpose ( reshape ( a, (/2,nno/) ) )
+  if (any(coor /= 12)) call abort
+contains
+  subroutine two()
+    allocate(coor(3,2))
+    coor = 99
+    a = 12
+  end subroutine
+end program elastic2