From d6b913a2ea369ec570cf7d7f32802a8fab15fa21 Mon Sep 17 00:00:00 2001 From: David Blaikie Date: Tue, 19 Sep 2017 19:20:08 +0000 Subject: [PATCH] Fix test to not depend on another subdirectories Input directory Inputs should be placed local to the test (or possibly in a common parent? I think we do that in some places - but the only common parent between these two directories is 'test' which seems a bit overly broad). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313662 91177308-0d34-0410-b5e6-96231b3b80d8 --- .../llvm-dwarfdump/X86/Inputs/typeunit-header.s | 49 ++++++++++++++++++++++ .../llvm-dwarfdump/X86/debug_type_offset.test | 4 +- 2 files changed, 51 insertions(+), 2 deletions(-) create mode 100644 test/tools/llvm-dwarfdump/X86/Inputs/typeunit-header.s diff --git a/test/tools/llvm-dwarfdump/X86/Inputs/typeunit-header.s b/test/tools/llvm-dwarfdump/X86/Inputs/typeunit-header.s new file mode 100644 index 00000000000..802eb01c552 --- /dev/null +++ b/test/tools/llvm-dwarfdump/X86/Inputs/typeunit-header.s @@ -0,0 +1,49 @@ +# Test object with an artifically constructed type unit header to verify +# that the length field is correctly used to verify the validity of the +# type_offset field. +# +# To generate the test object: +# llvm-mc -triple x86_64-unknown-linux typeunit-header.s -filetype=obj \ +# -o typeunit-header.elf-x86-64 +# +# We only have an abbreviation for the type unit die which is all we need. +# Real type unit dies have quite different attributes of course, but we +# just need to demonstrate an issue with validating length, so we just give it +# a single visibility attribute. + .section .debug_abbrev,"",@progbits + .byte 0x01 # Abbrev code + .byte 0x41 # DW_TAG_type_unit + .byte 0x01 # DW_CHILDREN_yes + .byte 0x17 # DW_AT_visibility + .byte 0x0b # DW_FORM_data1 + .byte 0x00 # EOM(1) + .byte 0x00 # EOM(2) + .byte 0x02 # Abbrev code + .byte 0x13 # DW_TAG_structure_type + .byte 0x00 # DW_CHILDREN_no (no members) + .byte 0x17 # DW_AT_visibility + .byte 0x0b # DW_FORM_data1 + .byte 0x00 # EOM(1) + .byte 0x00 # EOM(2) + .byte 0x00 # EOM(3) + + .section .debug_types,"",@progbits +# DWARF v4 Type unit header - DWARF32 format. +TU_4_32_start: + .long TU_4_32_end-TU_4_32_version # Length of Unit +TU_4_32_version: + .short 4 # DWARF version number + .long .debug_abbrev # Offset Into Abbrev. Section + .byte 8 # Address Size (in bytes) + .quad 0x0011223344556677 # Type Signature + .long TU_4_32_type-TU_4_32_start # Type offset +# The type-unit DIE, which has just a visibility attribute. + .byte 1 # Abbreviation code + .byte 1 # DW_VIS_local +# The type DIE, which also just has a one-byte visibility attribute. +TU_4_32_type: + .byte 2 # Abbreviation code + .byte 1 # DW_VIS_local + .byte 0 # NULL + .byte 0 # NULL +TU_4_32_end: diff --git a/test/tools/llvm-dwarfdump/X86/debug_type_offset.test b/test/tools/llvm-dwarfdump/X86/debug_type_offset.test index 5be0bff2009..6fd36e619dc 100644 --- a/test/tools/llvm-dwarfdump/X86/debug_type_offset.test +++ b/test/tools/llvm-dwarfdump/X86/debug_type_offset.test @@ -1,4 +1,4 @@ -RUN: llvm-mc %S/../../../DebugInfo/Inputs/typeunit-header.s -filetype obj \ +RUN: llvm-mc %p/Inputs/typeunit-header.s -filetype obj \ RUN: -triple x86_64-unknown-elf -o - \ RUN: | llvm-dwarfdump -debug-types=0x00000019 - | FileCheck %s CHECK: .debug_types contents: @@ -7,7 +7,7 @@ CHECK: 0x00000019: DW_TAG_structure_type CHECK: DW_AT_visibility CHECK-NOT: {{:}} -RUN: llvm-mc %S/../../../DebugInfo/Inputs/typeunit-header.s -filetype obj \ +RUN: llvm-mc %p/Inputs/typeunit-header.s -filetype obj \ RUN: -triple x86_64-unknown-elf -o - \ RUN: | llvm-dwarfdump -c -debug-types=0x0000017 - \ RUN: | FileCheck %s --check-prefix=CHILDREN -- 2.11.0