# 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: [] ...