annotate gcc/testsuite/gfortran.dg/public_private_module_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 ! { dg-options "-O2" }
kono
parents:
diff changeset
3 ! { dg-require-visibility "" }
kono
parents:
diff changeset
4 !
kono
parents:
diff changeset
5 ! PR fortran/52751 (top, "module mod")
kono
parents:
diff changeset
6 ! PR fortran/40973 (bottom, "module m")
kono
parents:
diff changeset
7 !
kono
parents:
diff changeset
8 ! Ensure that (only) those module variables and procedures which are PRIVATE
kono
parents:
diff changeset
9 ! and have no C-binding label are optimized away.
kono
parents:
diff changeset
10 !
kono
parents:
diff changeset
11 module mod
kono
parents:
diff changeset
12 integer :: aa
kono
parents:
diff changeset
13 integer, private :: iii
kono
parents:
diff changeset
14 integer, private, bind(C) :: jj ! { dg-warning "PRIVATE but has been given the binding label" }
kono
parents:
diff changeset
15 integer, private, bind(C,name='lll') :: kk ! { dg-warning "PRIVATE but has been given the binding label" }
kono
parents:
diff changeset
16 integer, private, bind(C,name='') :: mmmm
kono
parents:
diff changeset
17 integer, bind(C) :: nnn
kono
parents:
diff changeset
18 integer, bind(C,name='oo') :: pp
kono
parents:
diff changeset
19 integer, bind(C,name='') :: qq
kono
parents:
diff changeset
20 end module mod
kono
parents:
diff changeset
21
kono
parents:
diff changeset
22 ! The two xfails below have appeared with the introduction of submodules. 'iii' and
kono
parents:
diff changeset
23 ! 'mmm' now are TREE_PUBLIC but has DECL_VISIBILITY (decl) = VISIBILITY_HIDDEN set.
kono
parents:
diff changeset
24
kono
parents:
diff changeset
25 ! { dg-final { scan-assembler "__mod_MOD_aa" } }
kono
parents:
diff changeset
26 ! { dg-final { scan-assembler-not "iii" { xfail *-*-* } } }
kono
parents:
diff changeset
27 ! { dg-final { scan-assembler "jj" } }
kono
parents:
diff changeset
28 ! { dg-final { scan-assembler "lll" } }
kono
parents:
diff changeset
29 ! { dg-final { scan-assembler-not "kk" } }
kono
parents:
diff changeset
30 ! { dg-final { scan-assembler-not "mmmm" { xfail *-*-* } } }
kono
parents:
diff changeset
31 ! { dg-final { scan-assembler "nnn" } }
kono
parents:
diff changeset
32 ! { dg-final { scan-assembler "oo" } }
kono
parents:
diff changeset
33 ! { dg-final { scan-assembler "__mod_MOD_qq" } }
kono
parents:
diff changeset
34
kono
parents:
diff changeset
35 MODULE M
kono
parents:
diff changeset
36 PRIVATE :: two, three, four, six
kono
parents:
diff changeset
37 PUBLIC :: one, seven, eight, ten
kono
parents:
diff changeset
38 CONTAINS
kono
parents:
diff changeset
39 SUBROUTINE one(a)
kono
parents:
diff changeset
40 integer :: a
kono
parents:
diff changeset
41 a = two()
kono
parents:
diff changeset
42 END SUBROUTINE one
kono
parents:
diff changeset
43 integer FUNCTION two()
kono
parents:
diff changeset
44 two = 42
kono
parents:
diff changeset
45 END FUNCTION two
kono
parents:
diff changeset
46 integer FUNCTION three() bind(C) ! { dg-warning "PRIVATE but has been given the binding label" }
kono
parents:
diff changeset
47 three = 43
kono
parents:
diff changeset
48 END FUNCTION three
kono
parents:
diff changeset
49 integer FUNCTION four() bind(C, name='five') ! { dg-warning "PRIVATE but has been given the binding label" }
kono
parents:
diff changeset
50 four = 44
kono
parents:
diff changeset
51 END FUNCTION four
kono
parents:
diff changeset
52 integer FUNCTION six() bind(C, name='')
kono
parents:
diff changeset
53 six = 46
kono
parents:
diff changeset
54 END FUNCTION six
kono
parents:
diff changeset
55 integer FUNCTION seven() bind(C)
kono
parents:
diff changeset
56 seven = 46
kono
parents:
diff changeset
57 END FUNCTION seven
kono
parents:
diff changeset
58 integer FUNCTION eight() bind(C, name='nine')
kono
parents:
diff changeset
59 eight = 48
kono
parents:
diff changeset
60 END FUNCTION eight
kono
parents:
diff changeset
61 integer FUNCTION ten() bind(C, name='')
kono
parents:
diff changeset
62 ten = 48
kono
parents:
diff changeset
63 END FUNCTION ten
kono
parents:
diff changeset
64 END MODULE
kono
parents:
diff changeset
65
kono
parents:
diff changeset
66 ! { dg-final { scan-assembler "__m_MOD_one" } }
kono
parents:
diff changeset
67 ! { dg-final { scan-assembler-not "two" } }
kono
parents:
diff changeset
68 ! { dg-final { scan-assembler "three" } }
kono
parents:
diff changeset
69 ! { dg-final { scan-assembler-not "four" } }
kono
parents:
diff changeset
70 ! { dg-final { scan-assembler "five" } }
kono
parents:
diff changeset
71 ! { dg-final { scan-assembler-not "six" } }
kono
parents:
diff changeset
72 ! { dg-final { scan-assembler "seven" } }
kono
parents:
diff changeset
73 ! { dg-final { scan-assembler "nine" } }
kono
parents:
diff changeset
74 ! { dg-final { scan-assembler "__m_MOD_ten" } }