aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.9/gcc/testsuite/gfortran.dg/matmul_argument_types.f90
blob: 1480655c4c9299a8dc78bd87c9fab1496f5db4e9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
! { 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