annotate gcc/testsuite/gfortran.dg/redefined_intrinsic_assignment_2.f90 @ 131:84e7813d76e9

gcc-8.2
author mir3636
date Thu, 25 Oct 2018 07:37:49 +0900
parents 04ced10e8804
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
111
kono
parents:
diff changeset
1 ! { dg-do compile }
kono
parents:
diff changeset
2 !
kono
parents:
diff changeset
3 ! PR fortran/47448
kono
parents:
diff changeset
4 !
kono
parents:
diff changeset
5 ! ASSIGNMENT(=) checks. Defined assignment is allowed if and only if
kono
parents:
diff changeset
6 ! it does not override an intrinsic assignment.
kono
parents:
diff changeset
7 !
kono
parents:
diff changeset
8
kono
parents:
diff changeset
9 module test1
kono
parents:
diff changeset
10 interface assignment(=)
kono
parents:
diff changeset
11 module procedure valid, valid2
kono
parents:
diff changeset
12 end interface
kono
parents:
diff changeset
13 contains
kono
parents:
diff changeset
14 ! Valid: scalar = array
kono
parents:
diff changeset
15 subroutine valid (lhs,rhs)
kono
parents:
diff changeset
16 integer, intent(out) :: lhs
kono
parents:
diff changeset
17 integer, intent(in) :: rhs(:)
kono
parents:
diff changeset
18 lhs = rhs(1)
kono
parents:
diff changeset
19 end subroutine valid
kono
parents:
diff changeset
20
kono
parents:
diff changeset
21 ! Valid: array of different ranks
kono
parents:
diff changeset
22 subroutine valid2 (lhs,rhs)
kono
parents:
diff changeset
23 integer, intent(out) :: lhs(:)
kono
parents:
diff changeset
24 integer, intent(in) :: rhs(:,:)
kono
parents:
diff changeset
25 lhs(:) = rhs(:,1)
kono
parents:
diff changeset
26 end subroutine valid2
kono
parents:
diff changeset
27 end module test1
kono
parents:
diff changeset
28
kono
parents:
diff changeset
29 module test2
kono
parents:
diff changeset
30 interface assignment(=)
kono
parents:
diff changeset
31 module procedure invalid
kono
parents:
diff changeset
32 end interface
kono
parents:
diff changeset
33 contains
kono
parents:
diff changeset
34 ! Invalid: scalar = scalar
kono
parents:
diff changeset
35 subroutine invalid (lhs,rhs) ! { dg-error "must not redefine an INTRINSIC type assignment" }
kono
parents:
diff changeset
36 integer, intent(out) :: lhs
kono
parents:
diff changeset
37 integer, intent(in) :: rhs
kono
parents:
diff changeset
38 lhs = rhs
kono
parents:
diff changeset
39 end subroutine invalid
kono
parents:
diff changeset
40 end module test2
kono
parents:
diff changeset
41
kono
parents:
diff changeset
42 module test3
kono
parents:
diff changeset
43 interface assignment(=)
kono
parents:
diff changeset
44 module procedure invalid2
kono
parents:
diff changeset
45 end interface
kono
parents:
diff changeset
46 contains
kono
parents:
diff changeset
47 ! Invalid: array = scalar
kono
parents:
diff changeset
48 subroutine invalid2 (lhs,rhs) ! { dg-error "must not redefine an INTRINSIC type assignment" }
kono
parents:
diff changeset
49 integer, intent(out) :: lhs(:)
kono
parents:
diff changeset
50 integer, intent(in) :: rhs
kono
parents:
diff changeset
51 lhs(:) = rhs
kono
parents:
diff changeset
52 end subroutine invalid2
kono
parents:
diff changeset
53 end module test3
kono
parents:
diff changeset
54
kono
parents:
diff changeset
55 module test4
kono
parents:
diff changeset
56 interface assignment(=)
kono
parents:
diff changeset
57 module procedure invalid3
kono
parents:
diff changeset
58 end interface
kono
parents:
diff changeset
59 contains
kono
parents:
diff changeset
60 ! Invalid: array = array for same rank
kono
parents:
diff changeset
61 subroutine invalid3 (lhs,rhs) ! { dg-error "must not redefine an INTRINSIC type assignment" }
kono
parents:
diff changeset
62 integer, intent(out) :: lhs(:)
kono
parents:
diff changeset
63 integer, intent(in) :: rhs(:)
kono
parents:
diff changeset
64 lhs(:) = rhs(:)
kono
parents:
diff changeset
65 end subroutine invalid3
kono
parents:
diff changeset
66 end module test4