diff options
author | Eric Christopher <echristo@gmail.com> | 2013-01-15 23:56:56 +0000 |
---|---|---|
committer | Eric Christopher <echristo@gmail.com> | 2013-01-15 23:56:56 +0000 |
commit | 72f7bfbf0e02bb11d3e7cca1f9598c5f9d9fa2ca (patch) | |
tree | ac0756254ac88cc3469f7274306ce15cab7f8a19 /test/DebugInfo/X86 | |
parent | af50dda4102114b23ac7d8c2db4703f22e02f02c (diff) |
Split address information for DWARF5 split dwarf proposal. This involves
using the DW_FORM_GNU_addr_index and a separate .debug_addr section which
stays in the executable and is fully linked.
Sneak in two other small changes:
a) Print out the debug_str_offsets.dwo section.
b) Change form we're expecting the entries in the debug_str_offsets.dwo
section to take from ULEB128 to U32.
Add tests for all of this in the fission-cu.ll test.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172578 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/DebugInfo/X86')
-rw-r--r-- | test/DebugInfo/X86/fission-cu.ll | 40 |
1 files changed, 39 insertions, 1 deletions
diff --git a/test/DebugInfo/X86/fission-cu.ll b/test/DebugInfo/X86/fission-cu.ll index 3ada3ef383..ef5f9586a2 100644 --- a/test/DebugInfo/X86/fission-cu.ll +++ b/test/DebugInfo/X86/fission-cu.ll @@ -26,14 +26,52 @@ ; CHECK: DW_AT_stmt_list [DW_FORM_data4] (0x00000000) ; CHECK: DW_AT_comp_dir [DW_FORM_strp] ( .debug_str[0x00000006] = "/usr/local/google/home/echristo/tmp") +; Check that we're using the right forms. +; CHECK: .debug_abbrev.dwo contents: +; CHECK: Abbrev table for offset: 0x00000000 +; CHECK: [1] DW_TAG_compile_unit DW_CHILDREN_yes +; CHECK: DW_AT_producer DW_FORM_GNU_str_index +; CHECK: DW_AT_language DW_FORM_data2 +; CHECK: DW_AT_name DW_FORM_GNU_str_index +; CHECK: DW_AT_low_pc DW_FORM_GNU_addr_index +; CHECK: DW_AT_stmt_list DW_FORM_data4 +; CHECK: DW_AT_comp_dir DW_FORM_GNU_str_index + +; CHECK: [2] DW_TAG_base_type DW_CHILDREN_no +; CHECK: DW_AT_name DW_FORM_GNU_str_index +; CHECK: DW_AT_encoding DW_FORM_data1 +; CHECK: DW_AT_byte_size DW_FORM_data1 + +; CHECK: [3] DW_TAG_variable DW_CHILDREN_no +; CHECK: DW_AT_name DW_FORM_GNU_str_index +; CHECK: DW_AT_type DW_FORM_ref4 +; CHECK: DW_AT_external DW_FORM_flag_present +; CHECK: DW_AT_decl_file DW_FORM_data1 +; CHECK: DW_AT_decl_line DW_FORM_data1 +; CHECK: DW_AT_location DW_FORM_block1 + ; Check that the rest of the compile units have information. -; FIXME: Strings will ultimately be a different form. ; CHECK: .debug_info.dwo contents: ; CHECK: DW_TAG_compile_unit ; CHECK: DW_AT_producer [DW_FORM_GNU_str_index] ( indexed (00000000) string = "clang version 3.3 (trunk 169021) (llvm/trunk 169020)") ; CHECK: DW_AT_language [DW_FORM_data2] (0x000c) ; CHECK: DW_AT_name [DW_FORM_GNU_str_index] ( indexed (00000001) string = "baz.c") +; CHECK: DW_AT_low_pc [DW_FORM_GNU_addr_index] ( indexed (00000000) address = 0x0000000000000000) ; CHECK: DW_TAG_base_type ; CHECK: DW_AT_name [DW_FORM_GNU_str_index] ( indexed (00000004) string = "int") ; CHECK: DW_TAG_variable ; CHECK: DW_AT_name [DW_FORM_GNU_str_index] ( indexed (00000003) string = "a") + +; CHECK: .debug_str.dwo contents: +; CHECK: 0x00000000: "clang version 3.3 (trunk 169021) (llvm/trunk 169020)" +; CHECK: 0x00000035: "baz.c" +; CHECK: 0x0000003b: "/usr/local/google/home/echristo/tmp" +; CHECK: 0x0000005f: "a" +; CHECK: 0x00000061: "int" + +; CHECK: .debug_str_offsets.dwo contents: +; CHECK: 0x00000000: 00000000 +; CHECK: 0x00000004: 00000035 +; CHECK: 0x00000008: 0000003b +; CHECK: 0x0000000c: 0000005f +; CHECK: 0x00000010: 00000061 |