[yaml2obj][ELF] Allow expressing undefined symbols.
[oota-llvm.git] / test / Object / yaml2obj-elf-symbol-basic.yaml
1 # RUN: yaml2obj -format=elf %s | llvm-readobj -symbols - | FileCheck %s
2 # RUN: yaml2obj -format=elf %s | llvm-objdump -d -no-show-raw-insn - | FileCheck %s --check-prefix=DISASSEMBLY
3 !ELF
4 FileHeader:
5   Class: ELFCLASS64
6   Data: ELFDATA2LSB
7   Type: ET_REL
8   Machine: EM_X86_64
9 Sections:
10   - Name: .text
11     Type: SHT_PROGBITS
12     Flags: [ SHF_ALLOC, SHF_EXECINSTR ]
13     Content: "90EBFE" # x86 machine code
14                       #   NOP ; To make main's `Value` non-zero (for testing).
15                       # main:
16                       #   JMP -2 ; (infloop)
17                       # This YAML file is a valid relocatable object that,
18                       # when linked and run on x86_64, will go into an
19                       # infloop.
20   - Name: .symtab
21     Type: SHT_SYMTAB
22     Symbols:
23       Global:
24         - Name: main
25           Type: STT_FUNC
26           Section: .text
27           Value: 0x1
28           Size: 2
29         - Name: undefined_symbol
30
31 # CHECK:      Symbols [
32 # CHECK-NEXT:   Symbol {
33 # CHECK-NEXT:     Name:  (0)
34 # CHECK:        Symbol {
35 # CHECK-NEXT:     Name: main
36 # CHECK-NEXT:     Value: 0x1
37 # CHECK-NEXT:     Size: 2
38 # CHECK:          Binding: Global
39 # CHECK-NEXT:     Type: Function
40 # CHECK:          Section: .text
41 # CHECK:        Symbol {
42 # CHECK:          Name: undefined_symbol
43 # CHECK:          Section:  (0x0)
44
45 # DISASSEMBLY:      Disassembly of section .text:
46 # DISASSEMBLY-NEXT: main:
47 # DISASSEMBLY-NEXT:        1:       jmp     -2