214 lines · plain
1# REQUIRES: x862# RUN: llvm-mc -triple=i686-windows-gnu -filetype=obj -o %t.o %s3# RUN: cp %t.o %t.dupl.o4# RUN: not lld-link -lldmingw -out:%t.exe %t.o %t.dupl.o -entry:_Z4funcv 2>&1 | FileCheck %s5 6# CHECK: error: duplicate symbol: func()7# CHECK-NEXT: >>> defined at /path/to/src{{[/\\]}}dupl.cpp:68# CHECK-NEXT: >>> {{.*}}.o9# CHECK-NEXT: >>> defined at /path/to/src{{[/\\]}}dupl.cpp:610# CHECK-NEXT: >>> {{.*}}.o11# CHECK-EMPTY:12# CHECK-NEXT: error: duplicate symbol: _var13# CHECK-NEXT: >>> defined at /path/to/src{{[/\\]}}dupl.cpp:114# CHECK-NEXT: >>> {{.*}}.o15# CHECK-NEXT: >>> defined at /path/to/src{{[/\\]}}dupl.cpp:116# CHECK-NEXT: >>> {{.*}}.o17# CHECK-EMPTY:18# CHECK-NEXT: error: duplicate symbol: A::namespaceVar19# CHECK-NEXT: >>> defined at /path/to/src{{[/\\]}}dupl.cpp:320# CHECK-NEXT: >>> {{.*}}.o21# CHECK-NEXT: >>> defined at /path/to/src{{[/\\]}}dupl.cpp:322# CHECK-NEXT: >>> {{.*}}.o23 24 .text25 .file "dupl.cpp"26 .file 1 "/path/to/src" "dupl.cpp"27 .def __Z4funcv;28 .globl __Z4funcv # -- Begin function _Z4funcv29__Z4funcv: # @_Z4funcv30Lfunc_begin0:31 .loc 1 5 0 # dupl.cpp:5:032# %bb.0: # %entry33 .loc 1 6 1 prologue_end # dupl.cpp:6:134 retl35Lfunc_end0:36 # -- End function37 .bss38 .globl _var # @var39_var:40 .long 0 # 0x041 42 .globl __ZN1A12namespaceVarE # @_ZN1A12namespaceVarE43__ZN1A12namespaceVarE:44 .long 0 # 0x045 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 Code65 .byte 17 # DW_TAG_compile_unit66 .byte 1 # DW_CHILDREN_yes67 .byte 37 # DW_AT_producer68 .byte 37 # DW_FORM_strx169 .byte 19 # DW_AT_language70 .byte 5 # DW_FORM_data271 .byte 3 # DW_AT_name72 .byte 37 # DW_FORM_strx173 .byte 16 # DW_AT_stmt_list74 .byte 23 # DW_FORM_sec_offset75 .byte 17 # DW_AT_low_pc76 .byte 1 # DW_FORM_addr77 .byte 18 # DW_AT_high_pc78 .byte 6 # DW_FORM_data479 .byte 0 # EOM(1)80 .byte 0 # EOM(2)81 .byte 2 # Abbreviation Code82 .byte 52 # DW_TAG_variable83 .byte 0 # DW_CHILDREN_no84 .byte 3 # DW_AT_name85 .byte 14 # DW_FORM_strp86 .byte 73 # DW_AT_type87 .byte 19 # DW_FORM_ref488 .byte 63 # DW_AT_external89 .byte 25 # DW_FORM_flag_present90 .byte 58 # DW_AT_decl_file91 .byte 11 # DW_FORM_data192 .byte 59 # DW_AT_decl_line93 .byte 11 # DW_FORM_data194 .byte 2 # DW_AT_location95 .byte 24 # DW_FORM_exprloc96 .byte 0 # EOM(1)97 .byte 0 # EOM(2)98 .byte 3 # Abbreviation Code99 .byte 36 # DW_TAG_base_type100 .byte 0 # DW_CHILDREN_no101 .byte 3 # DW_AT_name102 .byte 14 # DW_FORM_strp103 .byte 62 # DW_AT_encoding104 .byte 11 # DW_FORM_data1105 .byte 11 # DW_AT_byte_size106 .byte 11 # DW_FORM_data1107 .byte 0 # EOM(1)108 .byte 0 # EOM(2)109 .byte 4 # Abbreviation Code110 .byte 57 # DW_TAG_namespace111 .byte 1 # DW_CHILDREN_yes112 .byte 3 # DW_AT_name113 .byte 14 # DW_FORM_strp114 .byte 0 # EOM(1)115 .byte 0 # EOM(2)116 .byte 5 # Abbreviation Code117 .byte 52 # DW_TAG_variable118 .byte 0 # DW_CHILDREN_no119 .byte 3 # DW_AT_name120 .byte 14 # DW_FORM_strp121 .byte 73 # DW_AT_type122 .byte 19 # DW_FORM_ref4123 .byte 63 # DW_AT_external124 .byte 25 # DW_FORM_flag_present125 .byte 58 # DW_AT_decl_file126 .byte 11 # DW_FORM_data1127 .byte 59 # DW_AT_decl_line128 .byte 11 # DW_FORM_data1129 .byte 2 # DW_AT_location130 .byte 24 # DW_FORM_exprloc131 .byte 110 # DW_AT_linkage_name132 .byte 14 # DW_FORM_strp133 .byte 0 # EOM(1)134 .byte 0 # EOM(2)135 .byte 6 # Abbreviation Code136 .byte 46 # DW_TAG_subprogram137 .byte 0 # DW_CHILDREN_no138 .byte 17 # DW_AT_low_pc139 .byte 1 # DW_FORM_addr140 .byte 18 # DW_AT_high_pc141 .byte 6 # DW_FORM_data4142 .byte 64 # DW_AT_frame_base143 .byte 24 # DW_FORM_exprloc144 .byte 110 # DW_AT_linkage_name145 .byte 14 # DW_FORM_strp146 .byte 3 # DW_AT_name147 .byte 14 # DW_FORM_strp148 .byte 58 # DW_AT_decl_file149 .byte 11 # DW_FORM_data1150 .byte 59 # DW_AT_decl_line151 .byte 11 # DW_FORM_data1152 .byte 63 # DW_AT_external153 .byte 25 # DW_FORM_flag_present154 .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 Unit161Ldebug_info_start0:162 .short 4 # DWARF version number163 .secrel32 Lsection_abbrev # Offset Into Abbrev. Section164 .byte 4 # Address Size (in bytes)165 .byte 1 # Abbrev [1] 0xb:0x64 DW_TAG_compile_unit166 .byte 0 # DW_AT_producer167 .short 33 # DW_AT_language168 .byte 0 # DW_AT_name169 .secrel32 Lline_table_start0 # DW_AT_stmt_list170 .long Lfunc_begin0 # DW_AT_low_pc171 .long Lfunc_end0-Lfunc_begin0 # DW_AT_high_pc172 .byte 2 # Abbrev [2] 0x26:0x11 DW_TAG_variable173 .secrel32 Linfo_string0 # DW_AT_name174 .secrel32 Linfo_type_int # DW_AT_type175 # DW_AT_external176 .byte 1 # DW_AT_decl_file177 .byte 1 # DW_AT_decl_line178 .byte 5 # DW_AT_location179 .byte 3180 .long _var181Linfo_type_int:182 .byte 3 # Abbrev [3] 0x37:0x7 DW_TAG_base_type183 .secrel32 Linfo_string1 # DW_AT_name184 .byte 5 # DW_AT_encoding185 .byte 4 # DW_AT_byte_size186 .byte 4 # Abbrev [4] 0x3e:0x1b DW_TAG_namespace187 .secrel32 Linfo_string2 # DW_AT_name188 .byte 5 # Abbrev [5] 0x43:0x15 DW_TAG_variable189 .secrel32 Linfo_string3 # DW_AT_name190 .secrel32 Linfo_type_int # DW_AT_type191 # DW_AT_external192 .byte 1 # DW_AT_decl_file193 .byte 3 # DW_AT_decl_line194 .byte 5 # DW_AT_location195 .byte 3196 .long __ZN1A12namespaceVarE197 .secrel32 Linfo_string4 # DW_AT_linkage_name198 .byte 0 # End Of Children Mark199 .byte 6 # Abbrev [6] 0x59:0x15 DW_TAG_subprogram200 .long Lfunc_begin0 # DW_AT_low_pc201 .long Lfunc_end0-Lfunc_begin0 # DW_AT_high_pc202 .byte 1 # DW_AT_frame_base203 .byte 84204 .secrel32 Linfo_string5 # DW_AT_linkage_name205 .secrel32 Linfo_string6 # DW_AT_name206 .byte 1 # DW_AT_decl_file207 .byte 5 # DW_AT_decl_line208 # DW_AT_external209 .byte 0 # End Of Children Mark210Ldebug_info_end0:211 212 .section .debug_line,"dr"213Lline_table_start0:214