rt_gccstream/gcc/testsuite/gfortran.dg/matmul_argument_types.f90

33 lines
929 B
Fortran

! { dg-do compile }
!
! PR fortran/36355
! Check MATMUL argument types:
!
! numeric logical other
! numeric 1 2 3
! logical 2 1 3
! other 3 3 3
!
! where
! 1 ok
! 2 argument type mismatch
! 3 invalid argument types
!
INTEGER :: a(2,2)
LOGICAL :: b(2,2)
CHARACTER :: c
a = MATMUL(a, a) ! ok
a = MATMUL(a, b) ! { dg-error "must match" }
a = MATMUL(a, c) ! { dg-error "must be numeric or LOGICAL" }
b = MATMUL(b, a) ! { dg-error "must match" }
b = MATMUL(b, b) ! ok
b = MATMUL(b, c) ! { dg-error "must be numeric or LOGICAL" }
c = MATMUL(c, a) ! { dg-error "must be numeric or LOGICAL" }
c = MATMUL(c, b) ! { dg-error "must be numeric or LOGICAL" }
c = MATMUL(c, c) ! { dg-error "must be numeric or LOGICAL" }
END