xref: /llvm-project/lldb/test/Shell/SymbolFile/DWARF/x86/debug_static-member-anonymous-namespace.s (revision fc440f27cd50e48e1f9ebe6e56febe2823e59de4)
1*fc440f27SSigurur sgeirsson# RUN: llvm-mc --triple=x86_64-pc-linux --filetype=obj %s -o %t
2*fc440f27SSigurur sgeirsson# RUN: %lldb -o "target variable ug U::s" -b %t | FileCheck %s
3*fc440f27SSigurur sgeirsson
4*fc440f27SSigurur sgeirsson# CHECK: (lldb) target variable ug
5*fc440f27SSigurur sgeirsson# CHECK: (U) ug = (m = 14159265)
6*fc440f27SSigurur sgeirsson# CHECK: (int) U::s = 65295141
7*fc440f27SSigurur sgeirsson
8*fc440f27SSigurur sgeirsson# This tests that a static member in a class declared in the anonymous namespace
9*fc440f27SSigurur sgeirsson# does not appear as a field of the class. There is a difference between the
10*fc440f27SSigurur sgeirsson# debug info generated by gcc and clang, where clang flags the static member
11*fc440f27SSigurur sgeirsson# with DW_AT_external, but gcc does not.
12*fc440f27SSigurur sgeirsson#
13*fc440f27SSigurur sgeirsson# Roughly corresponds to this source code:
14*fc440f27SSigurur sgeirsson#
15*fc440f27SSigurur sgeirsson# namespace {
16*fc440f27SSigurur sgeirsson# struct U {
17*fc440f27SSigurur sgeirsson#   static int s;
18*fc440f27SSigurur sgeirsson#   int m = 14159265;
19*fc440f27SSigurur sgeirsson# };
20*fc440f27SSigurur sgeirsson# int U::s = 65295141;
21*fc440f27SSigurur sgeirsson# }
22*fc440f27SSigurur sgeirsson#
23*fc440f27SSigurur sgeirsson# U ug;
24*fc440f27SSigurur sgeirsson
25*fc440f27SSigurur sgeirsson        .file   "test.cpp"
26*fc440f27SSigurur sgeirsson        .data
27*fc440f27SSigurur sgeirsson        .quad 0
28*fc440f27SSigurur sgeirssonug:
29*fc440f27SSigurur sgeirsson        .long 14159265
30*fc440f27SSigurur sgeirsson.Lug_s:
31*fc440f27SSigurur sgeirsson        .long 65295141
32*fc440f27SSigurur sgeirsson
33*fc440f27SSigurur sgeirsson        .section        .debug_info,"",@progbits
34*fc440f27SSigurur sgeirsson.Ldebug_info0:
35*fc440f27SSigurur sgeirsson        .long   .Lcu_end-.Lcu_begin
36*fc440f27SSigurur sgeirsson.Lcu_begin:
37*fc440f27SSigurur sgeirsson        .value  0x4
38*fc440f27SSigurur sgeirsson        .long   .Ldebug_abbrev0
39*fc440f27SSigurur sgeirsson        .byte   0x8
40*fc440f27SSigurur sgeirsson        .uleb128 0x1
41*fc440f27SSigurur sgeirsson        .asciz  "GCC DWARF reduced by hand"
42*fc440f27SSigurur sgeirsson        .byte   0x4
43*fc440f27SSigurur sgeirsson        .asciz  "test.cpp"
44*fc440f27SSigurur sgeirsson        .uleb128 0x2
45*fc440f27SSigurur sgeirsson.LU:
46*fc440f27SSigurur sgeirsson        .uleb128 0x3
47*fc440f27SSigurur sgeirsson        .string "U"
48*fc440f27SSigurur sgeirsson        .byte   0x4
49*fc440f27SSigurur sgeirsson.LU_s:
50*fc440f27SSigurur sgeirsson        .uleb128 0x4
51*fc440f27SSigurur sgeirsson        .string "s"
52*fc440f27SSigurur sgeirsson        .long   .Lint-.Ldebug_info0
53*fc440f27SSigurur sgeirsson        .uleb128 0x5
54*fc440f27SSigurur sgeirsson        .string "m"
55*fc440f27SSigurur sgeirsson        .long   .Lint-.Ldebug_info0
56*fc440f27SSigurur sgeirsson        .byte   0
57*fc440f27SSigurur sgeirsson        .byte   0
58*fc440f27SSigurur sgeirsson        .byte   0
59*fc440f27SSigurur sgeirsson        .uleb128 0x6
60*fc440f27SSigurur sgeirsson        .long   0x2d
61*fc440f27SSigurur sgeirsson.Lint:
62*fc440f27SSigurur sgeirsson        .uleb128 0x7
63*fc440f27SSigurur sgeirsson        .byte   0x4
64*fc440f27SSigurur sgeirsson        .byte   0x5
65*fc440f27SSigurur sgeirsson        .string "int"
66*fc440f27SSigurur sgeirsson        .uleb128 0x9
67*fc440f27SSigurur sgeirsson        .string "ug"
68*fc440f27SSigurur sgeirsson        .long   .LU-.Ldebug_info0
69*fc440f27SSigurur sgeirsson        .uleb128 0x9
70*fc440f27SSigurur sgeirsson        .byte   0x3
71*fc440f27SSigurur sgeirsson        .quad   ug
72*fc440f27SSigurur sgeirsson        .uleb128 0xa
73*fc440f27SSigurur sgeirsson        .long   .LU_s-.Ldebug_info0
74*fc440f27SSigurur sgeirsson        .uleb128 0x9
75*fc440f27SSigurur sgeirsson        .byte   0x3
76*fc440f27SSigurur sgeirsson        .quad .Lug_s
77*fc440f27SSigurur sgeirsson        .byte   0
78*fc440f27SSigurur sgeirsson.Lcu_end:
79*fc440f27SSigurur sgeirsson        .section        .debug_abbrev,"",@progbits
80*fc440f27SSigurur sgeirsson.Ldebug_abbrev0:
81*fc440f27SSigurur sgeirsson        .uleb128 0x1
82*fc440f27SSigurur sgeirsson        .uleb128 0x11
83*fc440f27SSigurur sgeirsson        .byte   0x1
84*fc440f27SSigurur sgeirsson        .uleb128 0x25
85*fc440f27SSigurur sgeirsson        .uleb128 0x8
86*fc440f27SSigurur sgeirsson        .uleb128 0x13
87*fc440f27SSigurur sgeirsson        .uleb128 0xb
88*fc440f27SSigurur sgeirsson        .uleb128 0x3
89*fc440f27SSigurur sgeirsson        .uleb128 0x8
90*fc440f27SSigurur sgeirsson        .byte   0
91*fc440f27SSigurur sgeirsson        .byte   0
92*fc440f27SSigurur sgeirsson        .uleb128 0x2
93*fc440f27SSigurur sgeirsson        .uleb128 0x39
94*fc440f27SSigurur sgeirsson        .byte   0x1
95*fc440f27SSigurur sgeirsson        .byte   0
96*fc440f27SSigurur sgeirsson        .byte   0
97*fc440f27SSigurur sgeirsson        .uleb128 0x3
98*fc440f27SSigurur sgeirsson        .uleb128 0x13
99*fc440f27SSigurur sgeirsson        .byte   0x1
100*fc440f27SSigurur sgeirsson        .uleb128 0x3
101*fc440f27SSigurur sgeirsson        .uleb128 0x8
102*fc440f27SSigurur sgeirsson        .uleb128 0xb
103*fc440f27SSigurur sgeirsson        .uleb128 0xb
104*fc440f27SSigurur sgeirsson        .byte   0
105*fc440f27SSigurur sgeirsson        .byte   0
106*fc440f27SSigurur sgeirsson        .uleb128 0x4
107*fc440f27SSigurur sgeirsson        .uleb128 0xd
108*fc440f27SSigurur sgeirsson        .byte   0
109*fc440f27SSigurur sgeirsson        .uleb128 0x3
110*fc440f27SSigurur sgeirsson        .uleb128 0x8
111*fc440f27SSigurur sgeirsson        .uleb128 0x49
112*fc440f27SSigurur sgeirsson        .uleb128 0x13
113*fc440f27SSigurur sgeirsson        .uleb128 0x3c
114*fc440f27SSigurur sgeirsson        .uleb128 0x19
115*fc440f27SSigurur sgeirsson        .byte   0
116*fc440f27SSigurur sgeirsson        .byte   0
117*fc440f27SSigurur sgeirsson        .uleb128 0x5
118*fc440f27SSigurur sgeirsson        .uleb128 0xd
119*fc440f27SSigurur sgeirsson        .byte   0
120*fc440f27SSigurur sgeirsson        .uleb128 0x3
121*fc440f27SSigurur sgeirsson        .uleb128 0x8
122*fc440f27SSigurur sgeirsson        .uleb128 0x49
123*fc440f27SSigurur sgeirsson        .uleb128 0x13
124*fc440f27SSigurur sgeirsson        .uleb128 0x38
125*fc440f27SSigurur sgeirsson        .uleb128 0xb
126*fc440f27SSigurur sgeirsson        .byte   0
127*fc440f27SSigurur sgeirsson        .byte   0
128*fc440f27SSigurur sgeirsson        .uleb128 0x6
129*fc440f27SSigurur sgeirsson        .uleb128 0x3a
130*fc440f27SSigurur sgeirsson        .byte   0
131*fc440f27SSigurur sgeirsson        .uleb128 0x18
132*fc440f27SSigurur sgeirsson        .uleb128 0x13
133*fc440f27SSigurur sgeirsson        .byte   0
134*fc440f27SSigurur sgeirsson        .byte   0
135*fc440f27SSigurur sgeirsson        .uleb128 0x7
136*fc440f27SSigurur sgeirsson        .uleb128 0x24
137*fc440f27SSigurur sgeirsson        .byte   0
138*fc440f27SSigurur sgeirsson        .uleb128 0xb
139*fc440f27SSigurur sgeirsson        .uleb128 0xb
140*fc440f27SSigurur sgeirsson        .uleb128 0x3e
141*fc440f27SSigurur sgeirsson        .uleb128 0xb
142*fc440f27SSigurur sgeirsson        .uleb128 0x3
143*fc440f27SSigurur sgeirsson        .uleb128 0x8
144*fc440f27SSigurur sgeirsson        .byte   0
145*fc440f27SSigurur sgeirsson        .byte   0
146*fc440f27SSigurur sgeirsson        .uleb128 0x8
147*fc440f27SSigurur sgeirsson        .uleb128 0x26
148*fc440f27SSigurur sgeirsson        .byte   0
149*fc440f27SSigurur sgeirsson        .uleb128 0x49
150*fc440f27SSigurur sgeirsson        .uleb128 0x13
151*fc440f27SSigurur sgeirsson        .byte   0
152*fc440f27SSigurur sgeirsson        .byte   0
153*fc440f27SSigurur sgeirsson        .uleb128 0x9
154*fc440f27SSigurur sgeirsson        .uleb128 0x34
155*fc440f27SSigurur sgeirsson        .byte   0
156*fc440f27SSigurur sgeirsson        .uleb128 0x3
157*fc440f27SSigurur sgeirsson        .uleb128 0x8
158*fc440f27SSigurur sgeirsson        .uleb128 0x49
159*fc440f27SSigurur sgeirsson        .uleb128 0x13
160*fc440f27SSigurur sgeirsson        .uleb128 0x2
161*fc440f27SSigurur sgeirsson        .uleb128 0x18
162*fc440f27SSigurur sgeirsson        .byte   0
163*fc440f27SSigurur sgeirsson        .byte   0
164*fc440f27SSigurur sgeirsson	.uleb128 0xa
165*fc440f27SSigurur sgeirsson	.uleb128 0x34
166*fc440f27SSigurur sgeirsson	.byte	0
167*fc440f27SSigurur sgeirsson	.uleb128 0x47
168*fc440f27SSigurur sgeirsson	.uleb128 0x13
169*fc440f27SSigurur sgeirsson	.uleb128 0x2
170*fc440f27SSigurur sgeirsson	.uleb128 0x18
171*fc440f27SSigurur sgeirsson	.byte	0
172*fc440f27SSigurur sgeirsson	.byte	0
173*fc440f27SSigurur sgeirsson        .byte   0
174