| # RUN: yaml2obj %s | not llvm-dwarfdump --verify - | FileCheck %s --implicit-check-not=error: |
| |
| # CHECK: error: DIE has DW_AT_decl_file with invalid encoding{{[[:space:]]}} |
| # CHECK-NEXT: 0x0000001a: DW_TAG_subprogram |
| # CHECK-NEXT: DW_AT_name [DW_FORM_strp] ( .debug_str[0x0000000d] = "main") |
| # CHECK-NEXT: DW_AT_low_pc [DW_FORM_addr] (0x0000000000001000) |
| # CHECK-NEXT: DW_AT_high_pc [DW_FORM_addr] (0x0000000000002000) |
| # CHECK-NEXT: DW_AT_decl_file [DW_FORM_strp] ( .debug_str[0x00000012] = "") |
| # CHECK-NEXT: DW_AT_call_line [DW_FORM_data1] (5){{[[:space:]]}} |
| # CHECK-NEXT: error: DIE has DW_AT_call_file with invalid encoding{{[[:space:]]}} |
| # CHECK-NEXT: 0x00000034: DW_TAG_inlined_subroutine |
| # CHECK-NEXT: DW_AT_name [DW_FORM_strp] ( .debug_str[0x00000013] = "inline1") |
| # CHECK-NEXT: DW_AT_low_pc [DW_FORM_addr] (0x0000000000001100) |
| # CHECK-NEXT: DW_AT_high_pc [DW_FORM_data4] (0x00000100) |
| # CHECK-NEXT: DW_AT_call_file [DW_FORM_strp] ( .debug_str[0x00000012] = "") |
| # CHECK-NEXT: DW_AT_call_line [DW_FORM_data1] (10){{[[:space:]]}} |
| # CHECK-NEXT: error: DIE has DW_AT_decl_file with invalid encoding{{[[:space:]]}} |
| # CHECK-NEXT: 0x0000004a: DW_TAG_subprogram |
| # CHECK-NEXT: DW_AT_name [DW_FORM_strp] ( .debug_str[0x0000001b] = "foo") |
| # CHECK-NEXT: DW_AT_low_pc [DW_FORM_addr] (0x0000000000002000) |
| # CHECK-NEXT: DW_AT_high_pc [DW_FORM_addr] (0x0000000000003000) |
| # CHECK-NEXT: DW_AT_decl_file [DW_FORM_sdata] (2) |
| # CHECK-NEXT: DW_AT_decl_line [DW_FORM_sdata] (3) |
| # CHECK-NEXT: DW_AT_call_file [DW_FORM_sdata] (4) |
| # CHECK-NEXT: DW_AT_call_line [DW_FORM_sdata] (5){{[[:space:]]}} |
| # CHECK-NEXT: error: DIE has DW_AT_decl_line with invalid encoding{{[[:space:]]}} |
| # CHECK-NEXT: 0x0000004a: DW_TAG_subprogram |
| # CHECK-NEXT: DW_AT_name [DW_FORM_strp] ( .debug_str[0x0000001b] = "foo") |
| # CHECK-NEXT: DW_AT_low_pc [DW_FORM_addr] (0x0000000000002000) |
| # CHECK-NEXT: DW_AT_high_pc [DW_FORM_addr] (0x0000000000003000) |
| # CHECK-NEXT: DW_AT_decl_file [DW_FORM_sdata] (2) |
| # CHECK-NEXT: DW_AT_decl_line [DW_FORM_sdata] (3) |
| # CHECK-NEXT: DW_AT_call_file [DW_FORM_sdata] (4) |
| # CHECK-NEXT: DW_AT_call_line [DW_FORM_sdata] (5){{[[:space:]]}} |
| # CHECK-NEXT: error: DIE has DW_AT_call_file with invalid encoding{{[[:space:]]}} |
| # CHECK-NEXT: 0x0000004a: DW_TAG_subprogram |
| # CHECK-NEXT: DW_AT_name [DW_FORM_strp] ( .debug_str[0x0000001b] = "foo") |
| # CHECK-NEXT: DW_AT_low_pc [DW_FORM_addr] (0x0000000000002000) |
| # CHECK-NEXT: DW_AT_high_pc [DW_FORM_addr] (0x0000000000003000) |
| # CHECK-NEXT: DW_AT_decl_file [DW_FORM_sdata] (2) |
| # CHECK-NEXT: DW_AT_decl_line [DW_FORM_sdata] (3) |
| # CHECK-NEXT: DW_AT_call_file [DW_FORM_sdata] (4) |
| # CHECK-NEXT: DW_AT_call_line [DW_FORM_sdata] (5){{[[:space:]]}} |
| # CHECK-NEXT: error: DIE has DW_AT_call_line with invalid encoding{{[[:space:]]}} |
| # CHECK-NEXT: 0x0000004a: DW_TAG_subprogram |
| # CHECK-NEXT: DW_AT_name [DW_FORM_strp] ( .debug_str[0x0000001b] = "foo") |
| # CHECK-NEXT: DW_AT_low_pc [DW_FORM_addr] (0x0000000000002000) |
| # CHECK-NEXT: DW_AT_high_pc [DW_FORM_addr] (0x0000000000003000) |
| # CHECK-NEXT: DW_AT_decl_file [DW_FORM_sdata] (2) |
| # CHECK-NEXT: DW_AT_decl_line [DW_FORM_sdata] (3) |
| # CHECK-NEXT: DW_AT_call_file [DW_FORM_sdata] (4) |
| # CHECK-NEXT: DW_AT_call_line [DW_FORM_sdata] (5){{[[:space:]]}} |
| # CHECK-NEXT: Verifying dwo Units... |
| # CHECK-NEXT: Verifying .debug_line... |
| # CHECK-NEXT: Verifying .debug_str_offsets... |
| # CHECK-NEXT: error: Aggregated error counts: |
| # CHECK-NEXT: error: Invalid encoding in DW_AT_decl_file occurred 4 time(s). |
| # CHECK-NEXT: error: Invalid file index in DW_AT_call_line occurred 1 time(s). |
| # CHECK-NEXT: error: Invalid file index in DW_AT_decl_line occurred 1 time(s). |
| --- !ELF |
| FileHeader: |
| Class: ELFCLASS64 |
| Data: ELFDATA2LSB |
| Type: ET_EXEC |
| Machine: EM_X86_64 |
| DWARF: |
| debug_str: |
| - '' |
| - '/tmp/main.c' |
| - main |
| - '' |
| - inline1 |
| - foo |
| debug_abbrev: |
| - Table: |
| - Code: 0x0000000000000001 |
| Tag: DW_TAG_compile_unit |
| Children: DW_CHILDREN_yes |
| Attributes: |
| - Attribute: DW_AT_name |
| Form: DW_FORM_strp |
| - Attribute: DW_AT_language |
| Form: DW_FORM_data2 |
| - Attribute: DW_AT_low_pc |
| Form: DW_FORM_addr |
| - Code: 0x0000000000000002 |
| Tag: DW_TAG_subprogram |
| Children: DW_CHILDREN_yes |
| Attributes: |
| - Attribute: DW_AT_name |
| Form: DW_FORM_strp |
| - Attribute: DW_AT_low_pc |
| Form: DW_FORM_addr |
| - Attribute: DW_AT_high_pc |
| Form: DW_FORM_addr |
| - Attribute: DW_AT_decl_file |
| Form: DW_FORM_strp |
| - Attribute: DW_AT_call_line |
| Form: DW_FORM_data1 |
| - Code: 0x0000000000000003 |
| Tag: DW_TAG_inlined_subroutine |
| Children: DW_CHILDREN_no |
| Attributes: |
| - Attribute: DW_AT_name |
| Form: DW_FORM_strp |
| - Attribute: DW_AT_low_pc |
| Form: DW_FORM_addr |
| - Attribute: DW_AT_high_pc |
| Form: DW_FORM_data4 |
| - Attribute: DW_AT_call_file |
| Form: DW_FORM_strp |
| - Attribute: DW_AT_call_line |
| Form: DW_FORM_data1 |
| - Code: 0x0000000000000004 |
| Tag: DW_TAG_subprogram |
| Children: DW_CHILDREN_no |
| Attributes: |
| - Attribute: DW_AT_name |
| Form: DW_FORM_strp |
| - Attribute: DW_AT_low_pc |
| Form: DW_FORM_addr |
| - Attribute: DW_AT_high_pc |
| Form: DW_FORM_addr |
| - Attribute: DW_AT_decl_file |
| Form: DW_FORM_sdata |
| - Attribute: DW_AT_decl_line |
| Form: DW_FORM_sdata |
| - Attribute: DW_AT_call_file |
| Form: DW_FORM_sdata |
| - Attribute: DW_AT_call_line |
| Form: DW_FORM_sdata |
| debug_info: |
| - Length: 0x0000000000000061 |
| Version: 4 |
| AbbrOffset: 0x0000000000000000 |
| AddrSize: 8 |
| Entries: |
| - AbbrCode: 0x00000001 |
| Values: |
| - Value: 0x0000000000000001 |
| - Value: 0x0000000000000002 |
| - Value: 0x0000000000000000 |
| - AbbrCode: 0x00000002 |
| Values: |
| - Value: 0x000000000000000D |
| - Value: 0x0000000000001000 |
| - Value: 0x0000000000002000 |
| - Value: 0x0000000000000012 |
| - Value: 0x0000000000000005 |
| - AbbrCode: 0x00000003 |
| Values: |
| - Value: 0x0000000000000013 |
| - Value: 0x0000000000001100 |
| - Value: 0x0000000000000100 |
| - Value: 0x0000000000000012 |
| - Value: 0x000000000000000A |
| - AbbrCode: 0x00000004 |
| Values: |
| - Value: 0x000000000000001B |
| - Value: 0x0000000000002000 |
| - Value: 0x0000000000003000 |
| - Value: 0x0000000000000002 |
| - Value: 0x0000000000000003 |
| - Value: 0x0000000000000004 |
| - Value: 0x0000000000000005 |
| - AbbrCode: 0x00000000 |
| Values: [] |
| - AbbrCode: 0x00000000 |
| Values: [] |
| ... |