## 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:   SHF_GNU_RETAIN (0x200000)
# 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:   SHF_GNU_RETAIN (0x200000)
# 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:   SHF_GNU_RETAIN (0x200000)
# 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:   SHF_GNU_RETAIN (0x200000)
# 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_GNU_RETAIN (0x200000)
# 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  Ro            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 Rop            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
