## Test that --section works correctly for -d with -r.
# RUN: yaml2obj %s -o %t.o

## Show that only the specified sections are disassembled.
## Also show that no relocation sections are dumped because none are
## specified.
# RUN: llvm-objdump -d -r %t.o --section=.text --section=.rodata \
# RUN:   | FileCheck %s --check-prefixes=DISASM,RELOC --implicit-check-not=.text2

# DISASM:       Disassembly of section .text:
# DISASM-EMPTY:
# DISASM-NEXT:  0000000000000400 <.text>:
# DISASM-NEXT:  400: e8 00 00 00 00                callq   0x405 <.text+0x5>
# RELOC-NEXT:                      00000401:  R_X86_64_PC32        foo+0x1
# RELOC-NEXT:                      00000401:  R_X86_64_GOT32       foo
# DISASM:       Disassembly of section .rodata:
# DISASM-EMPTY:
# DISASM-NEXT:  0000000000000000 <.rodata>:
# DISASM-NEXT:  0: 00 00                           addb    %al, (%rax)
# RELOC-NEXT:              0000000000000000:  R_X86_64_NONE        foo
# DISASM-NEXT:  2: 00 00                           addb    %al, (%rax)

--- !ELF
FileHeader:
  Class:   ELFCLASS64
  Data:    ELFDATA2LSB
  Type:    ET_REL
  Machine: EM_X86_64
Sections:
  - Name:         .text
    Type:         SHT_PROGBITS
    Flags:        [SHF_ALLOC, SHF_EXECINSTR]
    Address:      0x400
    AddressAlign: 0x10
    Content:      'e800000000'
  - Name:         .text2
    Type:         SHT_PROGBITS
    Flags:        [SHF_ALLOC, SHF_EXECINSTR]
    Address:      0x401
    Content:      '90e800000000'
  - Name:         .rela.text
    Type:         SHT_RELA
    Info:         .text
    Relocations:
      - Offset: 1
        Symbol: foo
        Addend: 1
        Type:   R_X86_64_PC32
  - Name:         .another.rela.text
    Type:         SHT_RELA
    Info:         .text
    Relocations:
      - Offset: 1
        Symbol: foo
        Type:   R_X86_64_GOT32
  - Name:         .rela.text2
    Type:         SHT_RELA
    Info:         .text2
    Relocations:
      - Offset: 1
        Symbol: foo
        Addend: 2
        Type:   R_X86_64_PLT32
  - Name:       .rodata
    Type:       SHT_PROGBITS
    Flags:      [SHF_ALLOC]
    Size:       4
  - Name:       .rela.rodata
    Type:       SHT_RELA
    Info:       .rodata
    Relocations:
      - Offset: 0
        Symbol: foo
        Type: R_X86_64_NONE
Symbols:
  - Name: foo

## Test that --section works when dumping relocation sections.
# RUN: llvm-objdump -r %t.o --section=.another.rela.text --section=.rela.rodata \
# RUN:   | FileCheck %s --check-prefix=DUMP-RELOCS --implicit-check-not=R_X86_64 \
# RUN:                  --implicit-check-not="RELOCATION RECORDS"

# DUMP-RELOCS: RELOCATION RECORDS FOR [.text]:
# DUMP-RELOCS: 00000001 R_X86_64_GOT32 foo
# DUMP-RELOCS: RELOCATION RECORDS FOR [.rodata]:
# DUMP-RELOCS: 00000000 R_X86_64_NONE foo

## Test that --section works with --full-contents.
# RUN: llvm-objdump -s %t.o --section=.text --section=.rela.text2 \
# RUN:   | FileCheck %s --check-prefix=CONTENTS \
# RUN:                  --implicit-check-not=.text \
# RUN:                  --implicit-check-not=.rodata

# CONTENTS: Contents of section .text:
# CONTENTS: Contents of section .rela.text2:
