diff options
Diffstat (limited to 'gcc/testsuite/gfortran.dg/generic_20.f90')
-rw-r--r-- | gcc/testsuite/gfortran.dg/generic_20.f90 | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/gcc/testsuite/gfortran.dg/generic_20.f90 b/gcc/testsuite/gfortran.dg/generic_20.f90 new file mode 100644 index 000000000..04a57b090 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/generic_20.f90 @@ -0,0 +1,31 @@ +! { dg-do run } +! +! PR fortran/39304 +! +! matmul checking was checking the wrong specific function +! ("one" instead of "two") +! +module m + implicit none + interface one + module procedure one, two + end interface one +contains + function one() + real :: one(1) + one = 0.0 + end function one + function two(x) + real :: x + real :: two(1,1) + two = reshape ( (/ x /), (/ 1, 1 /) ) + end function two +end module m + +use m +real :: res(1) +res = matmul (one(2.0), (/ 2.0/)) +if (abs (res(1)-4.0) > epsilon (res)) call abort () +end + +! { dg-final { cleanup-modules "m" } } |