1# RUN: yaml2obj %s -o %t.o 2# RUN: llvm-dwarfdump --statistics %t.o 2>&1 | FileCheck %s 3# RUN: rm %t.o 4 5## Check that we are covering the situation when a stat field overflows. 6## 7## The yaml represents this DWARF: 8## 9## DW_TAG_compile_unit 10## DW_AT_low_pc (0x0000000000000000) 11## DW_AT_high_pc (0x000000000000000b) 12## 13## DW_TAG_subprogram 14## DW_AT_low_pc (0x0000000000000000) 15## DW_AT_high_pc (0xffffffffffffffff) 16## DW_TAG_variable 17## DW_AT_location (0x00000023: 18## [0x0000000000000003, 0x0000000000000005): DW_OP_reg2 RCX) 19## DW_TAG_subprogram 20## DW_AT_low_pc (0x0000000000000000) 21## DW_AT_high_pc (0xffffffffffffffff) 22## DW_TAG_variable 23## DW_AT_location (0x00000023: 24## [0x0000000000000003, 0x0000000000000005): DW_OP_reg2 RCX) 25 26# CHECK: "sum_all_variables(#bytes in parent scope)": "overflowed" 27 28--- !ELF 29FileHeader: 30 Class: ELFCLASS[[BITS=64]] 31 Data: ELFDATA2LSB 32 Type: ET_EXEC 33 Machine: EM_X86_64 34Sections: 35 - Name: .debug_loc 36 Type: SHT_PROGBITS 37 AddressAlign: 0x01 38 Content: '00000000000000000600000000000000010055000000000000000000000000000000000300000000000000050000000000000001005200000000000000000000000000000000' 39 - Name: .debug_ranges 40 Type: SHT_PROGBITS 41 AddressAlign: 0x01 42 Content: '000000000000000003000000000000000500000000000000080000000000000000000000000000000000000000000000' 43DWARF: 44 debug_abbrev: 45 - Table: 46 - Code: 1 47 Tag: DW_TAG_compile_unit 48 Children: DW_CHILDREN_yes 49 Attributes: 50 - Attribute: DW_AT_low_pc 51 Form: DW_FORM_addr 52 - Attribute: DW_AT_high_pc 53 Form: DW_FORM_data8 54 - Code: 2 55 Tag: DW_TAG_subprogram 56 Children: DW_CHILDREN_yes 57 Attributes: 58 - Attribute: DW_AT_low_pc 59 Form: DW_FORM_addr 60 - Attribute: DW_AT_high_pc 61 Form: DW_FORM_data8 62 - Code: 3 63 Tag: DW_TAG_variable 64 Children: DW_CHILDREN_no 65 Attributes: 66 - Attribute: DW_AT_location 67 Form: DW_FORM_sec_offset 68 debug_info: 69 - Version: 4 70 AbbrOffset: 0x00 71 Entries: 72 - AbbrCode: 1 ## DW_TAG_compile_unit 73 Values: 74 - Value: 0x00 ## DW_AT_low_pc 75 - Value: 0x0b ## DW_AT_high_pc 76 - AbbrCode: 2 ## DW_TAG_subprogram 77 Values: 78 - Value: 0x00 ## DW_AT_low_pc 79 - Value: 0xFFFFFFFFFFFFFFFF ## DW_AT_high_pc 80 - AbbrCode: 3 ## DW_TAG_variable 81 Values: 82 - Value: 0x23 ## DW_AT_sec_offset 83 - AbbrCode: 0 ## NULL 84 - AbbrCode: 2 ## DW_TAG_subprogram 85 Values: 86 - Value: 0x00 ## DW_AT_low_pc 87 - Value: 0xFFFFFFFFFFFFFFFF ## DW_AT_high_pc 88 - AbbrCode: 3 ## DW_TAG_variable 89 Values: 90 - Value: 0x23 ## DW_AT_sec_offset 91 - AbbrCode: 0 ## NULL 92 - AbbrCode: 0 ## NULL 93