# Test that cpu/processor-specific SHF_* flags are preserved.

# ===== x86_64 =====

# RUN: yaml2obj --docnum=1 %s -o %t-x86_64.o
# RUN: llvm-objcopy --rename-section=.foo=.bar,alloc %t-x86_64.o
# RUN: llvm-readobj --sections %t-x86_64.o | FileCheck %s --check-prefix=X86_64

--- !ELF
FileHeader:
  Class:           ELFCLASS64
  Data:            ELFDATA2LSB
  Type:            ET_REL
  Machine:         EM_X86_64
Sections:
  - Name:          .foo
    Type:          SHT_PROGBITS
    Flags:         [ SHF_X86_64_LARGE ]

# X86_64:        Name: .bar
# X86_64-NEXT:   Type: SHT_PROGBITS
# X86_64-NEXT:   Flags [
# X86_64-NEXT:     SHF_ALLOC (0x2)
# X86_64-NEXT:     SHF_WRITE (0x1)
# X86_64-NEXT:     SHF_X86_64_LARGE (0x10000000)
# X86_64-NEXT:   ]

# ===== hex =====

# RUN: yaml2obj --docnum=2 %s -o %t-hex.o
# RUN: llvm-objcopy --rename-section=.foo=.bar,alloc %t-hex.o
# RUN: llvm-readobj --sections %t-hex.o | FileCheck %s --check-prefix=HEX

--- !ELF
FileHeader:
  Class:           ELFCLASS64
  Data:            ELFDATA2LSB
  Type:            ET_REL
  Machine:         EM_HEXAGON
Sections:
  - Name:          .foo
    Type:          SHT_PROGBITS
    Flags:         [ SHF_HEX_GPREL ]

# HEX:        Name: .bar
# HEX-NEXT:   Type: SHT_PROGBITS
# HEX-NEXT:   Flags [
# HEX-NEXT:     SHF_ALLOC (0x2)
# HEX-NEXT:     SHF_HEX_GPREL (0x10000000)
# HEX-NEXT:     SHF_WRITE (0x1)
# HEX-NEXT:   ]

# ===== mips =====

# RUN: yaml2obj --docnum=3 %s -o %t-mips.o
# RUN: llvm-objcopy --rename-section=.foo=.bar,alloc %t-mips.o
# RUN: llvm-readobj --sections %t-mips.o | FileCheck %s --check-prefix=MIPS

--- !ELF
FileHeader:
  Class:           ELFCLASS64
  Data:            ELFDATA2LSB
  Type:            ET_REL
  Machine:         EM_MIPS
Sections:
  - Name:          .foo
    Type:          SHT_PROGBITS
    Flags:         [ SHF_MIPS_NODUPES, SHF_MIPS_NAMES, SHF_MIPS_LOCAL,
                     SHF_MIPS_NOSTRIP, SHF_MIPS_GPREL, SHF_MIPS_MERGE,
		     SHF_MIPS_ADDR, SHF_MIPS_STRING ]

# Note: llvm-readobj prints SHF_EXCLUDE/SHF_MASKPROC since specifying all
# SHF_MIPS_* flags covers the same bitset.

# MIPS:        Name: .bar
# MIPS-NEXT:   Type: SHT_PROGBITS
# MIPS-NEXT:   Flags [
# MIPS-NEXT:     SHF_ALLOC (0x2)
# MIPS-NEXT:     SHF_MIPS_ADDR (0x40000000)
# MIPS-NEXT:     SHF_MIPS_GPREL (0x10000000)
# MIPS-NEXT:     SHF_MIPS_LOCAL (0x4000000)
# MIPS-NEXT:     SHF_MIPS_MERGE (0x20000000)
# MIPS-NEXT:     SHF_MIPS_NAMES (0x2000000)
# MIPS-NEXT:     SHF_MIPS_NODUPES (0x1000000)
# MIPS-NEXT:     SHF_MIPS_NOSTRIP (0x8000000)
# MIPS-NEXT:     SHF_WRITE (0x1)
# MIPS-NEXT:   ]

# ===== arm =====

# RUN: yaml2obj --docnum=4 %s -o %t-arm.o
# RUN: llvm-objcopy --rename-section=.foo=.bar,alloc %t-arm.o
# RUN: llvm-readobj --sections %t-arm.o | FileCheck %s --check-prefix=ARM

--- !ELF
FileHeader:
  Class:           ELFCLASS64
  Data:            ELFDATA2LSB
  Type:            ET_REL
  Machine:         EM_ARM
Sections:
  - Name:          .foo
    Type:          SHT_PROGBITS
    Flags:         [ SHF_ARM_PURECODE ]

# ARM:        Name: .bar
# ARM-NEXT:   Type: SHT_PROGBITS
# ARM-NEXT:   Flags [
# ARM-NEXT:     SHF_ALLOC (0x2)
# ARM-NEXT:     SHF_ARM_PURECODE (0x20000000)
# ARM-NEXT:     SHF_WRITE (0x1)
# ARM-NEXT:   ]
