xref: /llvm-project/flang/test/Semantics/separate-mp04.f90 (revision 77e965ef454ab1fcb2564e3ade17880a71542f58)
1f7be1aadSPeter Klausler! RUN: %python %S/test_errors.py %s %flang_fc1
2f7be1aadSPeter Klausler! Checks for multiple module procedure definitions
3f7be1aadSPeter Klausler
4f7be1aadSPeter Klauslermodule m1
5f7be1aadSPeter Klausler  interface
6f7be1aadSPeter Klausler    module subroutine x001
7f7be1aadSPeter Klausler    end subroutine
8f7be1aadSPeter Klausler    module subroutine x002
9f7be1aadSPeter Klausler    end subroutine
10f7be1aadSPeter Klausler    module subroutine x003
11f7be1aadSPeter Klausler    end subroutine
12f7be1aadSPeter Klausler  end interface
13f7be1aadSPeter Klauslerend
14f7be1aadSPeter Klausler
15f7be1aadSPeter Klauslersubmodule(m1) sm1
16f7be1aadSPeter Klausler  interface
17f7be1aadSPeter Klausler    module subroutine x004
18f7be1aadSPeter Klausler    end subroutine
19f7be1aadSPeter Klausler  end interface
20f7be1aadSPeter Klausler contains
21f7be1aadSPeter Klausler  module procedure x001 ! fine
22f7be1aadSPeter Klausler  end procedure
23f7be1aadSPeter Klausler  module subroutine x002
24f7be1aadSPeter Klausler  end subroutine
25f7be1aadSPeter Klausler  module subroutine x003
26f7be1aadSPeter Klausler  end subroutine
27f7be1aadSPeter Klauslerend
28f7be1aadSPeter Klausler
29f7be1aadSPeter Klauslersubmodule(m1) sm2
30f7be1aadSPeter Klausler contains
31*77e965efSPeter Klausler  !ERROR: Module procedure 'x002' in 'm1' has multiple definitions
32f7be1aadSPeter Klausler  module subroutine x002
33f7be1aadSPeter Klausler  end subroutine
34f7be1aadSPeter Klauslerend
35f7be1aadSPeter Klausler
36f7be1aadSPeter Klauslersubmodule(m1:sm2) sm3
37f7be1aadSPeter Klausler contains
38*77e965efSPeter Klausler  !ERROR: Module procedure 'x002' in 'm1' has multiple definitions
39f7be1aadSPeter Klausler  module subroutine x002
40f7be1aadSPeter Klausler  end subroutine
41*77e965efSPeter Klausler  !ERROR: Module procedure 'x003' in 'm1' has multiple definitions
42f7be1aadSPeter Klausler  module subroutine x003
43f7be1aadSPeter Klausler  end subroutine
44f7be1aadSPeter Klauslerend
45f7be1aadSPeter Klausler
46f7be1aadSPeter Klauslersubmodule(m1:sm1) sm4
47f7be1aadSPeter Klausler contains
48f7be1aadSPeter Klausler  module subroutine x004
49f7be1aadSPeter Klausler  end subroutine
50f7be1aadSPeter Klauslerend
51f7be1aadSPeter Klausler
52f7be1aadSPeter Klauslersubmodule(m1:sm1) sm5
53f7be1aadSPeter Klausler contains
54*77e965efSPeter Klausler  !ERROR: Module procedure 'x004' in 'm1:sm1' has multiple definitions
55f7be1aadSPeter Klausler  module subroutine x004
56f7be1aadSPeter Klausler  end subroutine
57f7be1aadSPeter Klauslerend
58