From 1dbe5c7838f306d8867802fa6e394d0fa5e1bf86 Mon Sep 17 00:00:00 2001 From: Jerry DeLisle Date: Sat, 11 Dec 2010 20:09:59 +0000 Subject: [PATCH] re PR fortran/46842 (wrong results with MATMUL(..., TRANSPOSE (func ())) -- 465.tonto test run miscompares) 2010-12-11 Jerry DeLisle PR fortran/46842 * gfortran.dg/array_function_6.f90: New test. From-SVN: r167714 --- gcc/testsuite/ChangeLog | 5 +++++ gcc/testsuite/gfortran.dg/array_function_6.f90 | 17 +++++++++++++++++ 2 files changed, 22 insertions(+) create mode 100644 gcc/testsuite/gfortran.dg/array_function_6.f90 diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 08baf3439a1..ed15e1659e7 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2010-12-11 Jerry DeLisle + + PR fortran/46842 + * gfortran.dg/array_function_6.f90: New test. + 2010-12-11 Nicola Pero * objc.dg/gnu-api-2-resolve-method.m: New. diff --git a/gcc/testsuite/gfortran.dg/array_function_6.f90 b/gcc/testsuite/gfortran.dg/array_function_6.f90 new file mode 100644 index 00000000000..3dab43dcb81 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/array_function_6.f90 @@ -0,0 +1,17 @@ +! { dg-do run } +! PR46842 wrong results with MATMUL(..., TRANSPOSE (func ())) +implicit none +call sub() +contains + subroutine sub() + real, dimension(2,2) :: b + b = 1.0 + b = matmul(b,transpose(func())) + if (any(b.ne.reshape((/ 4.0, 4.0, 6.0, 6.0 /),[2,2]) )) print *, b + end subroutine + + function func() result(res) + real, dimension(2,2) :: res + res = reshape([1,2,3,4], [2,2]) + end function +end