llvm-project
213 строк · 10.0 Кб
1# REQUIRES: x86
2# RUN: llvm-mc -triple=i686-windows-gnu -filetype=obj -o %t.o %s
3# RUN: cp %t.o %t.dupl.o
4# RUN: not lld-link -lldmingw -out:%t.exe %t.o %t.dupl.o -entry:_Z4funcv 2>&1 | FileCheck %s
5
6# CHECK: error: duplicate symbol: func()
7# CHECK-NEXT: >>> defined at /path/to/src{{[/\\]}}dupl.cpp:6
8# CHECK-NEXT: >>> {{.*}}.o
9# CHECK-NEXT: >>> defined at /path/to/src{{[/\\]}}dupl.cpp:6
10# CHECK-NEXT: >>> {{.*}}.o
11# CHECK-EMPTY:
12# CHECK-NEXT: error: duplicate symbol: _var
13# CHECK-NEXT: >>> defined at /path/to/src{{[/\\]}}dupl.cpp:1
14# CHECK-NEXT: >>> {{.*}}.o
15# CHECK-NEXT: >>> defined at /path/to/src{{[/\\]}}dupl.cpp:1
16# CHECK-NEXT: >>> {{.*}}.o
17# CHECK-EMPTY:
18# CHECK-NEXT: error: duplicate symbol: A::namespaceVar
19# CHECK-NEXT: >>> defined at /path/to/src{{[/\\]}}dupl.cpp:3
20# CHECK-NEXT: >>> {{.*}}.o
21# CHECK-NEXT: >>> defined at /path/to/src{{[/\\]}}dupl.cpp:3
22# CHECK-NEXT: >>> {{.*}}.o
23
24.text
25.file "dupl.cpp"
26.file 1 "/path/to/src" "dupl.cpp"
27.def __Z4funcv;
28.globl __Z4funcv # -- Begin function _Z4funcv
29__Z4funcv: # @_Z4funcv
30Lfunc_begin0:
31.loc 1 5 0 # dupl.cpp:5:0
32# %bb.0: # %entry
33.loc 1 6 1 prologue_end # dupl.cpp:6:1
34retl
35Lfunc_end0:
36# -- End function
37.bss
38.globl _var # @var
39_var:
40.long 0 # 0x0
41
42.globl __ZN1A12namespaceVarE # @_ZN1A12namespaceVarE
43__ZN1A12namespaceVarE:
44.long 0 # 0x0
45
46.section .debug_str,"dr"
47Linfo_string:
48Linfo_string0:
49.asciz "var"
50Linfo_string1:
51.asciz "int"
52Linfo_string2:
53.asciz "A"
54Linfo_string3:
55.asciz "namespaceVar"
56Linfo_string4:
57.asciz "_ZN1A12namespaceVarE"
58Linfo_string5:
59.asciz "_Z4funcv"
60Linfo_string6:
61.asciz "func"
62.section .debug_abbrev,"dr"
63Lsection_abbrev:
64.byte 1 # Abbreviation Code
65.byte 17 # DW_TAG_compile_unit
66.byte 1 # DW_CHILDREN_yes
67.byte 37 # DW_AT_producer
68.byte 37 # DW_FORM_strx1
69.byte 19 # DW_AT_language
70.byte 5 # DW_FORM_data2
71.byte 3 # DW_AT_name
72.byte 37 # DW_FORM_strx1
73.byte 16 # DW_AT_stmt_list
74.byte 23 # DW_FORM_sec_offset
75.byte 17 # DW_AT_low_pc
76.byte 1 # DW_FORM_addr
77.byte 18 # DW_AT_high_pc
78.byte 6 # DW_FORM_data4
79.byte 0 # EOM(1)
80.byte 0 # EOM(2)
81.byte 2 # Abbreviation Code
82.byte 52 # DW_TAG_variable
83.byte 0 # DW_CHILDREN_no
84.byte 3 # DW_AT_name
85.byte 14 # DW_FORM_strp
86.byte 73 # DW_AT_type
87.byte 19 # DW_FORM_ref4
88.byte 63 # DW_AT_external
89.byte 25 # DW_FORM_flag_present
90.byte 58 # DW_AT_decl_file
91.byte 11 # DW_FORM_data1
92.byte 59 # DW_AT_decl_line
93.byte 11 # DW_FORM_data1
94.byte 2 # DW_AT_location
95.byte 24 # DW_FORM_exprloc
96.byte 0 # EOM(1)
97.byte 0 # EOM(2)
98.byte 3 # Abbreviation Code
99.byte 36 # DW_TAG_base_type
100.byte 0 # DW_CHILDREN_no
101.byte 3 # DW_AT_name
102.byte 14 # DW_FORM_strp
103.byte 62 # DW_AT_encoding
104.byte 11 # DW_FORM_data1
105.byte 11 # DW_AT_byte_size
106.byte 11 # DW_FORM_data1
107.byte 0 # EOM(1)
108.byte 0 # EOM(2)
109.byte 4 # Abbreviation Code
110.byte 57 # DW_TAG_namespace
111.byte 1 # DW_CHILDREN_yes
112.byte 3 # DW_AT_name
113.byte 14 # DW_FORM_strp
114.byte 0 # EOM(1)
115.byte 0 # EOM(2)
116.byte 5 # Abbreviation Code
117.byte 52 # DW_TAG_variable
118.byte 0 # DW_CHILDREN_no
119.byte 3 # DW_AT_name
120.byte 14 # DW_FORM_strp
121.byte 73 # DW_AT_type
122.byte 19 # DW_FORM_ref4
123.byte 63 # DW_AT_external
124.byte 25 # DW_FORM_flag_present
125.byte 58 # DW_AT_decl_file
126.byte 11 # DW_FORM_data1
127.byte 59 # DW_AT_decl_line
128.byte 11 # DW_FORM_data1
129.byte 2 # DW_AT_location
130.byte 24 # DW_FORM_exprloc
131.byte 110 # DW_AT_linkage_name
132.byte 14 # DW_FORM_strp
133.byte 0 # EOM(1)
134.byte 0 # EOM(2)
135.byte 6 # Abbreviation Code
136.byte 46 # DW_TAG_subprogram
137.byte 0 # DW_CHILDREN_no
138.byte 17 # DW_AT_low_pc
139.byte 1 # DW_FORM_addr
140.byte 18 # DW_AT_high_pc
141.byte 6 # DW_FORM_data4
142.byte 64 # DW_AT_frame_base
143.byte 24 # DW_FORM_exprloc
144.byte 110 # DW_AT_linkage_name
145.byte 14 # DW_FORM_strp
146.byte 3 # DW_AT_name
147.byte 14 # DW_FORM_strp
148.byte 58 # DW_AT_decl_file
149.byte 11 # DW_FORM_data1
150.byte 59 # DW_AT_decl_line
151.byte 11 # DW_FORM_data1
152.byte 63 # DW_AT_external
153.byte 25 # DW_FORM_flag_present
154.byte 0 # EOM(1)
155.byte 0 # EOM(2)
156.byte 0 # EOM(3)
157.section .debug_info,"dr"
158Lsection_info:
159Lcu_begin0:
160.long Ldebug_info_end0-Ldebug_info_start0 # Length of Unit
161Ldebug_info_start0:
162.short 4 # DWARF version number
163.secrel32 Lsection_abbrev # Offset Into Abbrev. Section
164.byte 4 # Address Size (in bytes)
165.byte 1 # Abbrev [1] 0xb:0x64 DW_TAG_compile_unit
166.byte 0 # DW_AT_producer
167.short 33 # DW_AT_language
168.byte 0 # DW_AT_name
169.secrel32 Lline_table_start0 # DW_AT_stmt_list
170.long Lfunc_begin0 # DW_AT_low_pc
171.long Lfunc_end0-Lfunc_begin0 # DW_AT_high_pc
172.byte 2 # Abbrev [2] 0x26:0x11 DW_TAG_variable
173.secrel32 Linfo_string0 # DW_AT_name
174.secrel32 Linfo_type_int # DW_AT_type
175# DW_AT_external
176.byte 1 # DW_AT_decl_file
177.byte 1 # DW_AT_decl_line
178.byte 5 # DW_AT_location
179.byte 3
180.long _var
181Linfo_type_int:
182.byte 3 # Abbrev [3] 0x37:0x7 DW_TAG_base_type
183.secrel32 Linfo_string1 # DW_AT_name
184.byte 5 # DW_AT_encoding
185.byte 4 # DW_AT_byte_size
186.byte 4 # Abbrev [4] 0x3e:0x1b DW_TAG_namespace
187.secrel32 Linfo_string2 # DW_AT_name
188.byte 5 # Abbrev [5] 0x43:0x15 DW_TAG_variable
189.secrel32 Linfo_string3 # DW_AT_name
190.secrel32 Linfo_type_int # DW_AT_type
191# DW_AT_external
192.byte 1 # DW_AT_decl_file
193.byte 3 # DW_AT_decl_line
194.byte 5 # DW_AT_location
195.byte 3
196.long __ZN1A12namespaceVarE
197.secrel32 Linfo_string4 # DW_AT_linkage_name
198.byte 0 # End Of Children Mark
199.byte 6 # Abbrev [6] 0x59:0x15 DW_TAG_subprogram
200.long Lfunc_begin0 # DW_AT_low_pc
201.long Lfunc_end0-Lfunc_begin0 # DW_AT_high_pc
202.byte 1 # DW_AT_frame_base
203.byte 84
204.secrel32 Linfo_string5 # DW_AT_linkage_name
205.secrel32 Linfo_string6 # DW_AT_name
206.byte 1 # DW_AT_decl_file
207.byte 5 # DW_AT_decl_line
208# DW_AT_external
209.byte 0 # End Of Children Mark
210Ldebug_info_end0:
211
212.section .debug_line,"dr"
213Lline_table_start0:
214