xref: /llvm-project/flang/test/Semantics/bindings04.f90 (revision a3c6a7d53d21e09a45171c47456a33d89bc47738)
1! RUN: %python %S/test_errors.py %s %flang_fc1
2module m1
3  type t1
4   contains
5    procedure :: tbp => s1
6  end type
7  type, extends(t1) :: t1e
8   contains
9    !ERROR: A type-bound procedure and its override must have compatible interfaces
10    procedure :: tbp => s1e
11  end type
12 contains
13  subroutine s1(x)
14    class(t1) :: x
15  end
16  subroutine s1e(x)
17    class(t1e), intent(in out) :: x
18  end
19end
20
21module m2
22  type t1
23   contains
24    procedure :: tbp => s1
25  end type
26  type, extends(t1) :: t1e
27   contains
28    !ERROR: A type-bound procedure and its override must have compatible interfaces
29    procedure :: tbp => s1e
30  end type
31 contains
32  subroutine s1(x)
33    class(t1), intent(in out) :: x
34  end
35  subroutine s1e(x)
36    class(t1e) :: x
37  end
38end
39
40module m3
41  type t1
42   contains
43    procedure, nopass :: tbp => s1
44  end type
45  type, extends(t1) :: t1e
46   contains
47   !ERROR: A NOPASS type-bound procedure and its override must have identical interfaces
48    procedure, nopass :: tbp => s1e
49  end type
50 contains
51  subroutine s1(x)
52    real, intent(in out) :: x
53  end
54  subroutine s1e(x)
55    real :: x
56  end
57end
58