]>
Commit | Line | Data |
---|---|---|
30b608eb DK |
1 | ! { dg-do compile } |
2 | ||
3 | ! Type-bound procedures | |
4 | ! Test for errors in specific bindings, during parsing (not resolution). | |
5 | ||
6 | MODULE testmod | |
7 | IMPLICIT NONE | |
8 | ||
9 | TYPE t | |
10 | REAL :: a | |
11 | CONTAINS | |
12 | PROCEDURE p0 ! { dg-error "no IMPLICIT|module procedure" } | |
13 | PRIVATE ! { dg-error "must precede" } | |
14 | PROCEDURE p1 => proc1 ! { dg-error "::" } | |
15 | PROCEDURE :: ! { dg-error "Expected binding name" } | |
16 | PROCEDURE ! { dg-error "Expected binding name" } | |
17 | PROCEDURE ? ! { dg-error "Expected binding name" } | |
18 | PROCEDURE :: p2 => ! { dg-error "Expected binding target" } | |
19 | PROCEDURE :: p3 =>, ! { dg-error "Expected binding target" } | |
20 | PROCEDURE p4, ! { dg-error "Junk after" } | |
21 | PROCEDURE :: p5 => proc2, ! { dg-error "Junk after" } | |
22 | PROCEDURE :: p0 => proc3 ! { dg-error "already a procedure" } | |
23 | PROCEDURE, PASS p6 ! { dg-error "::" } | |
24 | PROCEDURE, PASS NON_OVERRIDABLE ! { dg-error "Expected" } | |
25 | PROCEDURE PASS :: ! { dg-error "Junk after" } | |
26 | PROCEDURE, PASS (x ! { dg-error "Expected" } | |
27 | PROCEDURE, PASS () ! { dg-error "Expected" } | |
28 | PROCEDURE, NOPASS, PASS ! { dg-error "illegal PASS" } | |
29 | PROCEDURE, PASS, NON_OVERRIDABLE, PASS(x) ! { dg-error "illegal PASS" } | |
30 | PROCEDURE, PUBLIC, PRIVATE ! { dg-error "Duplicate" } | |
31 | PROCEDURE, NON_OVERRIDABLE, NON_OVERRIDABLE ! { dg-error "Duplicate" } | |
32 | PROCEDURE, NOPASS, NOPASS ! { dg-error "illegal NOPASS" } | |
30b608eb DK |
33 | END TYPE t |
34 | ||
35 | CONTAINS | |
36 | ||
37 | END MODULE testmod | |
38 | ||
39 | ! { dg-final { cleanup-modules "testmod" } } |