diff options
author | Sean Silva <silvas@purdue.edu> | 2013-06-20 20:59:47 +0000 |
---|---|---|
committer | Sean Silva <silvas@purdue.edu> | 2013-06-20 20:59:47 +0000 |
commit | e38f640b22979994b42fb2f2aafc44cc39c20e8e (patch) | |
tree | 1c8d9e3d0236542c3bb61a78a2a664381361aff1 /test/Object/yaml2obj-elf-symbol-basic.yaml | |
parent | 6525e92b32c52772f7d750ada7084245655629e6 (diff) | |
download | external_llvm-e38f640b22979994b42fb2f2aafc44cc39c20e8e.zip external_llvm-e38f640b22979994b42fb2f2aafc44cc39c20e8e.tar.gz external_llvm-e38f640b22979994b42fb2f2aafc44cc39c20e8e.tar.bz2 |
[yaml2obj][ELF] Add support for st_value and st_size.
After this patch, the ELF file produced by
`yaml2obj-elf-symbol-basic.yaml`, when linked and executed on x86_64
(under SysV ABI, obviously; I tested on Linux), produces a working
executable that goes into an infinite loop!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184469 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/Object/yaml2obj-elf-symbol-basic.yaml')
-rw-r--r-- | test/Object/yaml2obj-elf-symbol-basic.yaml | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/test/Object/yaml2obj-elf-symbol-basic.yaml b/test/Object/yaml2obj-elf-symbol-basic.yaml index f3883bb..12acb7e 100644 --- a/test/Object/yaml2obj-elf-symbol-basic.yaml +++ b/test/Object/yaml2obj-elf-symbol-basic.yaml @@ -1,4 +1,5 @@ # RUN: yaml2obj -format=elf %s | llvm-readobj -symbols - | FileCheck %s +# RUN: yaml2obj -format=elf %s | llvm-objdump -d -no-show-raw-insn - | FileCheck %s --check-prefix=DISASSEMBLY !ELF FileHeader: Class: ELFCLASS64 @@ -9,6 +10,13 @@ Sections: - Name: .text Type: SHT_PROGBITS Flags: [ SHF_ALLOC, SHF_EXECINSTR ] + Content: "90EBFE" # x86 machine code + # NOP ; To make main's `Value` non-zero (for testing). + # main: + # JMP -2 ; (infloop) + # This YAML file is a valid relocatable object that, + # when linked and run on x86_64, will go into an + # infloop. - Name: .symtab Type: SHT_SYMTAB Symbols: @@ -16,12 +24,20 @@ Sections: Binding: STB_GLOBAL Type: STT_FUNC Section: .text + Value: 0x1 + Size: 2 # CHECK: Symbols [ # CHECK-NEXT: Symbol { # CHECK-NEXT: Name: (0) # CHECK: Symbol { # CHECK-NEXT: Name: main +# CHECK-NEXT: Value: 0x1 +# CHECK-NEXT: Size: 2 # CHECK: Binding: Global # CHECK-NEXT: Type: Function # CHECK: Section: .text + +# DISASSEMBLY: Disassembly of section .text: +# DISASSEMBLY-NEXT: main: +# DISASSEMBLY-NEXT: 1: jmp -2 |