258 lines · plain
1## This test checks that overlapping function address ranges2## are combined during --garbage-collection optimisation.3 4# RUN: yaml2obj %s -o %t.o5# RUN: llvm-dwarfutil --no-odr --garbage-collection %t.o %t16# RUN: llvm-dwarfdump -a %t1 | FileCheck %s7 8# RUN: llvm-dwarfutil --no-odr --linker parallel --garbage-collection %t.o %t19# RUN: llvm-dwarfdump -a %t1 | FileCheck %s10 11# CHECK: DW_TAG_compile_unit12# CHECK: DW_AT_name{{.*}}"CU1"13# CHECK: DW_AT_low_pc{{.*}}000000000000100014# CHECK: DW_AT_ranges15# CHECK: [0x0000000000001000, 0x000000000000102d)16# CHECK: [0x0000000000002002, 0x000000000000200d)17# CHECK: [0x000000000000201b, 0x000000000000202a)18# CHECK: [0x0000000000003002, 0x0000000000003007)19# CHECK: [0x0000000000003012, 0x0000000000003017)20# CHECK: [0x0000000000003018, 0x000000000000301a)21# CHECK: [0x0000000000003022, 0x000000000000302722# CHECK: DW_TAG_class_type23# CHECK: DW_AT_name{{.*}}"class1"24# CHECK: DW_TAG_class_type25# CHECK: "class2"26# CHECK: DW_TAG_subprogram27# CHECK: DW_AT_name{{.*}}"foo1"28# CHECK: DW_AT_low_pc{{.*}}0x000000000000100029# CHECK: DW_AT_high_pc{{.*}}0x000000000000101030# CHECK: DW_AT_type{{.*}}"class1"31# CHECK: DW_TAG_subprogram32# CHECK: "foo2"33# CHECK: DW_AT_low_pc{{.*}}0x000000000000100434# CHECK: DW_AT_high_pc{{.*}}0x000000000000100735# CHECK: DW_AT_type{{.*}}"class2"36# CHECK: DW_TAG_subprogram37# CHECK: "foo3"38# CHECK: DW_AT_low_pc{{.*}}0x000000000000100d39# CHECK: DW_AT_high_pc{{.*}}0x000000000000102d40# CHECK: DW_TAG_subprogram41# CHECK: "foo4"42# CHECK: DW_AT_low_pc{{.*}}0x000000000000200243# CHECK: DW_AT_high_pc{{.*}}0x000000000000200d44# CHECK: DW_TAG_subprogram45# CHECK: "foo5"46# CHECK: DW_AT_low_pc{{.*}}0x000000000000201b47# CHECK: DW_AT_high_pc{{.*}}0x000000000000202a48# CHECK: DW_TAG_subprogram49# CHECK: "foo6"50# CHECK: DW_AT_low_pc{{.*}}0x000000000000300251# CHECK: DW_AT_high_pc{{.*}}0x000000000000300752# CHECK: DW_TAG_subprogram53# CHECK: "foo7"54# CHECK: DW_AT_low_pc{{.*}}0x000000000000301255# CHECK: DW_AT_high_pc{{.*}}0x000000000000301756# CHECK: DW_TAG_subprogram57# CHECK: "foo8"58# CHECK: DW_AT_low_pc{{.*}}0x000000000000302259# CHECK: DW_AT_high_pc{{.*}}0x000000000000302760# CHECK: DW_TAG_subprogram61# CHECK: "foo9"62# CHECK: DW_AT_low_pc{{.*}}0x000000000000301263# CHECK: DW_AT_high_pc{{.*}}0x000000000000301764# CHECK: "foo10"65# CHECK: DW_AT_low_pc{{.*}}0x000000000000301866# CHECK: DW_AT_high_pc{{.*}}0x000000000000301a67 68--- !ELF69FileHeader:70 Class: ELFCLASS6471 Data: ELFDATA2LSB72 Type: ET_REL73 Machine: EM_X86_6474Sections:75 - Name: .text76 Type: SHT_PROGBITS77 Flags: [ SHF_ALLOC, SHF_EXECINSTR ]78 Address: 0x100079 AddressAlign: 0x000000000000001080 Content: "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"81 - Name: .text282 Type: SHT_PROGBITS83 Flags: [ SHF_ALLOC, SHF_EXECINSTR ]84 Address: 0x200085 AddressAlign: 0x000000000000001086 Content: "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"87 - Name: .text388 Type: SHT_PROGBITS89 Flags: [ SHF_ALLOC, SHF_EXECINSTR ]90 Address: 0x300091 AddressAlign: 0x000000000000001092 Content: "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"93DWARF:94 debug_abbrev:95 - Table:96 - Tag: DW_TAG_compile_unit97 Children: DW_CHILDREN_yes98 Attributes:99 - Attribute: DW_AT_producer100 Form: DW_FORM_string101 - Attribute: DW_AT_language102 Form: DW_FORM_data2103 - Attribute: DW_AT_name104 Form: DW_FORM_string105 - Attribute: DW_AT_low_pc106 Form: DW_FORM_addr107 - Attribute: DW_AT_ranges108 Form: DW_FORM_sec_offset109 - Tag: DW_TAG_subprogram110 Children: DW_CHILDREN_no111 Attributes:112 - Attribute: DW_AT_name113 Form: DW_FORM_string114 - Attribute: DW_AT_low_pc115 Form: DW_FORM_addr116 - Attribute: DW_AT_high_pc117 Form: DW_FORM_data8118 - Attribute: DW_AT_type119 Form: DW_FORM_ref4120 - Tag: DW_TAG_class_type121 Children: DW_CHILDREN_yes122 Attributes:123 - Attribute: DW_AT_name124 Form: DW_FORM_string125 - Tag: DW_TAG_member126 Children: DW_CHILDREN_no127 Attributes:128 - Attribute: DW_AT_type129 Form: DW_FORM_ref4130 - Attribute: DW_AT_name131 Form: DW_FORM_string132 - Tag: DW_TAG_class_type133 Children: DW_CHILDREN_no134 Attributes:135 - Attribute: DW_AT_name136 Form: DW_FORM_string137 - Attribute: DW_AT_declaration138 Form: DW_FORM_flag_present139 - Tag: DW_TAG_class_type140 Children: DW_CHILDREN_yes141 Attributes:142 - Attribute: DW_AT_name143 Form: DW_FORM_string144 - Attribute: DW_AT_declaration145 Form: DW_FORM_flag_present146 - Tag: DW_TAG_template_type_parameter147 Children: DW_CHILDREN_no148 Attributes:149 - Attribute: DW_AT_type150 Form: DW_FORM_ref4151 - Tag: DW_TAG_base_type152 Children: DW_CHILDREN_no153 Attributes:154 - Attribute: DW_AT_name155 Form: DW_FORM_string156 debug_info:157 - Version: 4158 Entries:159 - AbbrCode: 1160 Values:161 - CStr: by_hand162 - Value: 0x04163 - CStr: CU1164 - Value: 0x00165 - Value: 0x00166 - AbbrCode: 3167 Values:168 - CStr: class1169 - AbbrCode: 4170 Values:171 - Value: 0x00000052172 - CStr: member1173 - AbbrCode: 0174 - AbbrCode: 3175 Values:176 - CStr: class2177 - AbbrCode: 4178 Values:179 - Value: 0x00000052180 - CStr: member1181 - AbbrCode: 0182 - AbbrCode: 8183 Values:184 - CStr: int185 - AbbrCode: 2186 Values:187 - CStr: foo1188 - Value: 0x1000189 - Value: 0x10190 - Value: 0x00000026191 - AbbrCode: 2192 Values:193 - CStr: foo2194 - Value: 0x1004195 - Value: 0x3196 - Value: 0x0000003c197 - AbbrCode: 2198 Values:199 - CStr: foo3200 - Value: 0x100d201 - Value: 0x20202 - Value: 0x0000003c203 - AbbrCode: 2204 Values:205 - CStr: foo4206 - Value: 0x2002207 - Value: 0xb208 - Value: 0x0000003c209 - AbbrCode: 2210 Values:211 - CStr: foo5212 - Value: 0x201b213 - Value: 0xf214 - Value: 0x0000003c215 - AbbrCode: 2216 Values:217 - CStr: foo6218 - Value: 0x3002219 - Value: 0x5220 - Value: 0x0000003c221 - AbbrCode: 2222 Values:223 - CStr: foo7224 - Value: 0x3012225 - Value: 0x5226 - Value: 0x0000003c227 - AbbrCode: 2228 Values:229 - CStr: foo8230 - Value: 0x3022231 - Value: 0x5232 - Value: 0x0000003c233 - AbbrCode: 2234 Values:235 - CStr: foo9236 - Value: 0x3012237 - Value: 0x5238 - Value: 0x0000003c239 - AbbrCode: 2240 Values:241 - CStr: foo10242 - Value: 0x3018243 - Value: 0x2244 - Value: 0x0000003c245 - AbbrCode: 0246 247 debug_ranges:248 - Offset: 0x00000000249 AddrSize: 0x08250 Entries:251 - LowOffset: 0x0000000000001000252 HighOffset: 0x000000000000102d253 - LowOffset: 0x0000000000002000254 HighOffset: 0x000000000000202d255 - LowOffset: 0x0000000000000000256 HighOffset: 0x0000000000000000257...258