3 ! Type-bound procedures
4 ! Test for errors in specific bindings, during parsing (not resolution).
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 "Expected binding name" }
21 PROCEDURE :: p5 => proc2, ! { dg-error "Expected binding name" }
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 "Syntax error" }
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" }