## Here we test how OS and processor specific flags are dumped.

# RUN: yaml2obj %s -o %t.o
# RUN: llvm-readobj -S %t.o | FileCheck --check-prefix=OS-PROC-LLVM %s
# RUN: llvm-readelf -S %t.o | FileCheck --check-prefix=OS-PROC-GNU %s

# OS-PROC-LLVM:      Name: .os.flags.low
# OS-PROC-LLVM-NEXT: Type: SHT_PROGBITS
# OS-PROC-LLVM-NEXT: Flags [ (0x100000)
# OS-PROC-LLVM-NEXT: ]
# OS-PROC-LLVM:      Name: .os.flags.high
# OS-PROC-LLVM-NEXT: Type: SHT_PROGBITS
# OS-PROC-LLVM-NEXT: Flags [ (0xFE00000)
# OS-PROC-LLVM-NEXT: ]
# OS-PROC-LLVM:      Name: .os.flags.mask
# OS-PROC-LLVM-NEXT: Type: SHT_PROGBITS
# OS-PROC-LLVM-NEXT: Flags [ (0xFF00000)
# OS-PROC-LLVM-NEXT: ]
# OS-PROC-LLVM:      Name: .proc.flags.low
# OS-PROC-LLVM-NEXT: Type: SHT_PROGBITS
# OS-PROC-LLVM-NEXT: Flags [ (0x10000000)
# OS-PROC-LLVM-NEXT: ]
# OS-PROC-LLVM:      Name: .proc.flags.high
# OS-PROC-LLVM-NEXT: Type: SHT_PROGBITS
# OS-PROC-LLVM-NEXT: Flags [ (0xE0000000)
# OS-PROC-LLVM-NEXT:   SHF_EXCLUDE (0x80000000)
# OS-PROC-LLVM-NEXT: ]
# OS-PROC-LLVM:      Name: .proc.flags.mask
# OS-PROC-LLVM-NEXT: Type: SHT_PROGBITS
# OS-PROC-LLVM-NEXT: Flags [ (0xF0000000)
# OS-PROC-LLVM-NEXT:   SHF_EXCLUDE (0x80000000)
# OS-PROC-LLVM-NEXT: ]
# OS-PROC-LLVM:      Name: .both.flags.low
# OS-PROC-LLVM-NEXT: Type: SHT_PROGBITS
# OS-PROC-LLVM-NEXT: Flags [ (0x10100000)
# OS-PROC-LLVM-NEXT: ]
# OS-PROC-LLVM:      Name: .both.flags.high
# OS-PROC-LLVM-NEXT: Type: SHT_PROGBITS
# OS-PROC-LLVM-NEXT: Flags [ (0xEFE00000)
# OS-PROC-LLVM-NEXT:   SHF_EXCLUDE (0x80000000)
# OS-PROC-LLVM-NEXT: ]
# OS-PROC-LLVM:      Name: .both.flags.mask
# OS-PROC-LLVM-NEXT: Type: SHT_PROGBITS
# OS-PROC-LLVM-NEXT: Flags [ (0xFFF00000)
# OS-PROC-LLVM-NEXT:   SHF_EXCLUDE (0x80000000)
# OS-PROC-LLVM-NEXT: ]
# OS-PROC-LLVM:      Name: .exclude
# OS-PROC-LLVM-NEXT: Type: SHT_PROGBITS
# OS-PROC-LLVM-NEXT: Flags [ (0x80000000)
# OS-PROC-LLVM-NEXT:   SHF_EXCLUDE (0x80000000)
# OS-PROC-LLVM-NEXT: ]
# OS-PROC-LLVM:      Name: .all.possible
# OS-PROC-LLVM-NEXT: Type: SHT_PROGBITS
# OS-PROC-LLVM-NEXT: Flags [ (0xFFFFFFFF)
# OS-PROC-LLVM-NEXT:   SHF_ALLOC (0x2)
# OS-PROC-LLVM-NEXT:   SHF_COMPRESSED (0x800)
# OS-PROC-LLVM-NEXT:   SHF_EXCLUDE (0x80000000)
# OS-PROC-LLVM-NEXT:   SHF_EXECINSTR (0x4)
# OS-PROC-LLVM-NEXT:   SHF_GROUP (0x200)
# OS-PROC-LLVM-NEXT:   SHF_INFO_LINK (0x40)
# OS-PROC-LLVM-NEXT:   SHF_LINK_ORDER (0x80)
# OS-PROC-LLVM-NEXT:   SHF_MERGE (0x10)
# OS-PROC-LLVM-NEXT:   SHF_OS_NONCONFORMING (0x100)
# OS-PROC-LLVM-NEXT:   SHF_STRINGS (0x20)
# OS-PROC-LLVM-NEXT:   SHF_TLS (0x400)
# OS-PROC-LLVM-NEXT:   SHF_WRITE (0x1)
# OS-PROC-LLVM-NEXT: ]

# OS-PROC-GNU:      Section Headers:
# OS-PROC-GNU-NEXT:  [Nr] Name                   Type     Address          Off    Size   ES Flg            Lk Inf Al
# OS-PROC-GNU-NEXT:  [ 0]                        NULL     0000000000000000 000000 000000 00                0   0  0
# OS-PROC-GNU-NEXT:  [ 1] .os.flags.low          PROGBITS 0000000000000000 000040 000000 00   o            0   0  0
# OS-PROC-GNU-NEXT:  [ 2] .os.flags.high         PROGBITS 0000000000000000 000040 000000 00   o            0   0  0
# OS-PROC-GNU-NEXT:  [ 3] .os.flags.mask         PROGBITS 0000000000000000 000040 000000 00   o            0   0  0
# OS-PROC-GNU-NEXT:  [ 4] .proc.flags.low        PROGBITS 0000000000000000 000040 000000 00   p            0   0  0
# OS-PROC-GNU-NEXT:  [ 5] .proc.flags.high       PROGBITS 0000000000000000 000040 000000 00   p            0   0  0
# OS-PROC-GNU-NEXT:  [ 6] .proc.flags.mask       PROGBITS 0000000000000000 000040 000000 00   p            0   0  0
# OS-PROC-GNU-NEXT:  [ 7] .both.flags.low        PROGBITS 0000000000000000 000040 000000 00  op            0   0  0
# OS-PROC-GNU-NEXT:  [ 8] .both.flags.high       PROGBITS 0000000000000000 000040 000000 00  op            0   0  0
# OS-PROC-GNU-NEXT:  [ 9] .both.flags.mask       PROGBITS 0000000000000000 000040 000000 00  op            0   0  0
# OS-PROC-GNU-NEXT:  [10] .exclude               PROGBITS 0000000000000000 000040 000000 00   E            0   0  0
# OS-PROC-GNU-NEXT:  [11] .all.possible          PROGBITS 0000000000000000 000040 000000 00 WAXMSILOGTCopx 0   0  0

## Use an arbitrary EM_* machine type that does not have specific SHF_* OS/Processor
## flags to test what we dump when bits in the OS and processor specific ranges are set.

--- !ELF
FileHeader:
  Class: ELFCLASS64
  Data:  ELFDATA2LSB
  Type:  ET_REL
Sections:
  - Name:  .os.flags.low
    Type:  SHT_PROGBITS
    ShFlags: 0x00100000
  - Name:  .os.flags.high
    Type:  SHT_PROGBITS
    ShFlags: 0x0FE00000
  - Name:  .os.flags.mask
    Type:  SHT_PROGBITS
    ShFlags: 0x0FF00000
  - Name:  .proc.flags.low
    Type:  SHT_PROGBITS
    ShFlags: 0x10000000
  - Name:  .proc.flags.high
    Type:  SHT_PROGBITS
    ShFlags: 0xE0000000
  - Name:  .proc.flags.mask
    Type:  SHT_PROGBITS
    ShFlags: 0xF0000000
  - Name:  .both.flags.low
    Type:  SHT_PROGBITS
    ShFlags: 0x10100000
  - Name:  .both.flags.high
    Type:  SHT_PROGBITS
    ShFlags: 0xEFE00000
  - Name:  .both.flags.mask
    Type:  SHT_PROGBITS
    ShFlags: 0xFFF00000
## SHF_MASKPROC has a value of 0xf0000000, SHF_EXCLUDE has a value of
## 0x80000000. When SHF_EXCLUDE is mixed with other processor specific
## flags, GNU readelf does not necessarily print "E", because it handles
## the SHF_MASKPROC mask first. It only prints "E" when there are no other
## processor flags set. Check llvm-readelf output matches GNU.
  - Name:  .exclude
    Type:  SHT_PROGBITS
    ShFlags: 0x80000000
## Set all possible flags to test where we print 'o' and 'p' letters.
  - Name:  .all.possible
    Type:  SHT_PROGBITS
    ShFlags: 0xFFFFFFFF
