diff options
author | Eric Christopher <echristo@gmail.com> | 2013-11-21 23:46:41 +0000 |
---|---|---|
committer | Eric Christopher <echristo@gmail.com> | 2013-11-21 23:46:41 +0000 |
commit | 33ff697cb1037a1e9361a0acee8f0faaae990bd3 (patch) | |
tree | 40ee3cc41a76761381d55bc6bb75d6ac2dfd5d53 /llvm/test/DebugInfo/X86/stmt-list-multiple-compile-units.ll | |
parent | fd133b300c1267ef2e78db1e918391531c8ef012 (diff) | |
download | bcm5719-llvm-33ff697cb1037a1e9361a0acee8f0faaae990bd3.tar.gz bcm5719-llvm-33ff697cb1037a1e9361a0acee8f0faaae990bd3.zip |
In Dwarf 3 (and Dwarf 2) attributes whose value are offsets into a
section use the form DW_FORM_data4 whilst in Dwarf 4 and later they
use the form DW_FORM_sec_offset.
This patch updates the places where such attributes are generated to
use the appropriate form depending on the Dwarf version. The DIE entries
affected have the following tags:
DW_AT_stmt_list, DW_AT_ranges, DW_AT_location, DW_AT_GNU_pubnames,
DW_AT_GNU_pubtypes, DW_AT_GNU_addr_base, DW_AT_GNU_ranges_base
It also adds a hidden command line option "--dwarf-version=<uint>"
to llc which allows the version of Dwarf to be generated to override
what is specified in the metadata; this makes it possible to update
existing tests to check the debugging information generated for both
Dwarf 4 (the default) and Dwarf 3 using the same metadata.
Patch (slightly modified) by Keith Walker!
llvm-svn: 195391
Diffstat (limited to 'llvm/test/DebugInfo/X86/stmt-list-multiple-compile-units.ll')
-rw-r--r-- | llvm/test/DebugInfo/X86/stmt-list-multiple-compile-units.ll | 24 |
1 files changed, 22 insertions, 2 deletions
diff --git a/llvm/test/DebugInfo/X86/stmt-list-multiple-compile-units.ll b/llvm/test/DebugInfo/X86/stmt-list-multiple-compile-units.ll index d43d347958d..61cfd529127 100644 --- a/llvm/test/DebugInfo/X86/stmt-list-multiple-compile-units.ll +++ b/llvm/test/DebugInfo/X86/stmt-list-multiple-compile-units.ll @@ -1,16 +1,18 @@ ; RUN: llc -O0 %s -mtriple=x86_64-apple-darwin -filetype=obj -o %t ; RUN: llvm-dwarfdump %t | FileCheck %s +; RUN: llc -O0 %s -mtriple=x86_64-apple-darwin -filetype=obj -o %t -dwarf-version=3 +; RUN: llvm-dwarfdump %t | FileCheck %s -check-prefix=DWARF3 ; RUN: llc < %s -O0 -mtriple=x86_64-apple-macosx10.7 | FileCheck %s -check-prefix=ASM ; rdar://13067005 ; CHECK: .debug_info contents: ; CHECK: DW_TAG_compile_unit ; CHECK: DW_AT_low_pc [DW_FORM_addr] (0x0000000000000000) -; CHECK: DW_AT_stmt_list [DW_FORM_data4] (0x00000000) +; CHECK: DW_AT_stmt_list [DW_FORM_sec_offset] (0x00000000) ; CHECK: DW_TAG_compile_unit ; CHECK: DW_AT_low_pc [DW_FORM_addr] (0x0000000000000000) -; CHECK: DW_AT_stmt_list [DW_FORM_data4] (0x0000003c) +; CHECK: DW_AT_stmt_list [DW_FORM_sec_offset] (0x0000003c) ; CHECK: .debug_line contents: ; CHECK-NEXT: Line table prologue: @@ -21,6 +23,24 @@ ; CHECK: file_names[ 1] 0 0x00000000 0x00000000 simple2.c ; CHECK-NOT: file_names +; DWARF3: .debug_info contents: +; DWARF3: DW_TAG_compile_unit +; DWARF3: DW_AT_low_pc [DW_FORM_addr] (0x0000000000000000) +; DWARF3: DW_AT_stmt_list [DW_FORM_data4] (0x00000000) + +; DWARF3: DW_TAG_compile_unit +; DWARF3: DW_AT_low_pc [DW_FORM_addr] (0x0000000000000000) +; DWARF3: DW_AT_stmt_list [DW_FORM_data4] (0x0000003c) + +; DWARF3: .debug_line contents: +; DWARF3-NEXT: Line table prologue: +; DWARF3-NEXT: total_length: 0x00000038 +; DWARF3: file_names[ 1] 0 0x00000000 0x00000000 simple.c +; DWARF3: Line table prologue: +; DWARF3-NEXT: total_length: 0x00000039 +; DWARF3: file_names[ 1] 0 0x00000000 0x00000000 simple2.c +; DWARF3-NOT: file_names + ; PR15408 ; ASM: L__DWARF__debug_info_begin0: ; ASM: .long 0 ## DW_AT_stmt_list |