## Check that we are able to dump MIPS STO_* flags correctly when dumping symbols.

# RUN: yaml2obj %s -o %t.o
# RUN: llvm-readobj --symbols %t.o | FileCheck %s --strict-whitespace --check-prefix=MIPS-LLVM
# RUN: llvm-readelf --symbols %t.o | FileCheck %s --strict-whitespace --check-prefix=MIPS-GNU

#      MIPS-LLVM:Name: foo
#      MIPS-LLVM:Other [
# MIPS-LLVM-NEXT:  STO_MIPS_MICROMIPS (0x80)
# MIPS-LLVM-NEXT:  STO_MIPS_OPTIONAL (0x4)
# MIPS-LLVM-NEXT:  STO_MIPS_PIC (0x20)
# MIPS-LLVM-NEXT:  STO_MIPS_PLT (0x8)
# MIPS-LLVM-NEXT:]

#      MIPS-LLVM:Name: bar
#      MIPS-LLVM:Other [
# MIPS-LLVM-NEXT:  STO_MIPS_MIPS16 (0xF0)
# MIPS-LLVM-NEXT:]

#      MIPS-GNU:Symbol table '.symtab' contains 3 entries:
# MIPS-GNU-NEXT:  Num:    Value  Size Type    Bind   Vis                    Ndx Name
# MIPS-GNU-NEXT:    0: 00000000     0 NOTYPE  LOCAL  DEFAULT                UND
# MIPS-GNU-NEXT:    1: 00000000     0 NOTYPE  LOCAL  DEFAULT [<other: 0xac>] UND foo
# MIPS-GNU-NEXT:    2: 00000000     0 NOTYPE  LOCAL  DEFAULT [<other: 0xf0>] UND bar

--- !ELF
FileHeader:
  Class:   ELFCLASS32
  Data:    ELFDATA2LSB
  Type:    ET_REL
  Machine: EM_MIPS
Symbols:
  - Name: foo
    Other: [ STO_MIPS_MICROMIPS, STO_MIPS_PIC,
             STO_MIPS_PLT, STO_MIPS_OPTIONAL]
## Use a different symbol for STO_MIPS_MIPS16 (0xf0) as it interferes
## with STO_MIPS_PIC (0x20) and STO_MIPS_MICROMIPS (0x80).
  - Name: bar
    Other: [ STO_MIPS_MIPS16 ]
