# RUN: yaml2obj -DMACHINE=AARCH64 %s -o %t.o
# RUN: ld.lld --gc-sections %t.o -o %t
# RUN: llvm-readelf -S -r %t | FileCheck %s

## Test that we discard R_*_NONE, but respect the references it creates
## among sections.

# CHECK: .data
# CHECK: There are no relocations in this file.

# RUN: ld.lld -r %t.o -o %t
# RUN: llvm-readobj -r %t | FileCheck --check-prefix=RELOC %s

# RUN: yaml2obj -DBITS=32 -DMACHINE=ARM %s -o %t.o
# RUN: ld.lld -r %t.o -o %t
# RUN: llvm-readobj -r %t | FileCheck --check-prefix=RELOC %s

# RUN: yaml2obj -DBITS=32 -DMACHINE=PPC %s -o %t.o
# RUN: ld.lld -r %t.o -o %t
# RUN: llvm-readobj -r %t | FileCheck --check-prefix=RELOC %s

# RUN: yaml2obj -DMACHINE=PPC64 %s -o %t.o
# RUN: ld.lld -r %t.o -o %t
# RUN: llvm-readobj -r %t | FileCheck --check-prefix=RELOC %s

# RUN: yaml2obj -DMACHINE=RISCV %s -o %t.o
# RUN: ld.lld -r %t.o -o %t
# RUN: llvm-readobj -r %t | FileCheck --check-prefix=RELOC %s

# RUN: yaml2obj -DBITS=32 -DMACHINE=386 %s -o %t.o
# RUN: ld.lld -r %t.o -o %t
# RUN: llvm-readobj -r %t | FileCheck --check-prefix=RELOC %s

# RUN: yaml2obj -DMACHINE=X86_64 %s -o %t.o
# RUN: ld.lld -r %t.o -o %t
# RUN: llvm-readobj -r %t | FileCheck --check-prefix=RELOC %s

## Both REL and RELA are supported. .rel.llvm.call-graph-profile uses REL even
## if the prevailing format is RELA.
# RELOC:      Section ({{.*}}) .rela.text {
# RELOC-NEXT:   0x0 R_{{.*}}_NONE .data 0x0
# RELOC-NEXT: }
# RELOC:      Section ({{.*}}) .rel.nonalloc1 {
# RELOC-NEXT:   0x0 R_{{.*}}_NONE .data
# RELOC-NEXT: }
# RELOC:      Section ({{.*}}) .rela.nonalloc2 {
# RELOC-NEXT:   0x0 R_{{.*}}_NONE .data 0x0
# RELOC-NEXT: }

--- !ELF
FileHeader:
  Class:           ELFCLASS[[BITS=64]]
  Data:            ELFDATA2LSB
  Type:            ET_REL
  Machine:         EM_[[MACHINE]]
Sections:
  - Name:            .text
    Type:            SHT_PROGBITS
    Flags:           [ SHF_ALLOC, SHF_EXECINSTR ]
  - Name:            .data
    Type:            SHT_PROGBITS
    Flags:           [ SHF_WRITE, SHF_ALLOC ]
  - Name:            .nonalloc1
    Type:            SHT_PROGBITS
  - Name:            .nonalloc2
    Type:            SHT_PROGBITS
  - Name:            .rela.text
    Type:            SHT_RELA
    Info:            .text
    Relocations:
      - Symbol:          .data
        Type:            R_[[MACHINE]]_NONE
  - Name:            .rel.nonalloc1
    Type:            SHT_REL
    Info:            .nonalloc1
    Relocations:
      - Symbol:          .data
        Type:            R_[[MACHINE]]_NONE
  - Name:            .rela.nonalloc2
    Type:            SHT_RELA
    Info:            .nonalloc2
    Relocations:
      - Symbol:          .data
        Type:            R_[[MACHINE]]_NONE
Symbols:
  - Name:            .data
    Type:            STT_SECTION
    Section:         .data
  - Name:            _start
    Section:         .text
    Binding:         STB_GLOBAL
...
