## Test how yaml2obj sets the value of a symbol's st_other fields.

## Show that yaml2obj reports an error when using an STO_* flag that belongs
## to a different machine type to what is specified by the YAML.

# RUN: not yaml2obj --docnum=1 2>&1 %s | FileCheck %s --check-prefix=ERR
# ERR: error: an unknown value is used for symbol's 'Other' field: STO_MIPS_OPTIONAL

--- !ELF
FileHeader:
  Class:   ELFCLASS32
  Data:    ELFDATA2LSB
  Type:    ET_REL
  Machine: EM_386
Symbols:
  - Name:  foo
    Other: [ STO_MIPS_OPTIONAL ]

## Test that STO_* can be used with their correct machine type.
## We use the same YAML as above, but with a change of machine type.

# RUN: yaml2obj --docnum=2 %s > %t2
# RUN: llvm-readobj --symbols %t2 | FileCheck %s --check-prefix=USE-OTHER

# USE-OTHER:      Name: foo
# USE-OTHER:      Other [ (0x4)
# USE-OTHER-NEXT:   STO_MIPS_OPTIONAL (0x4)
# USE-OTHER-NEXT: ]

--- !ELF
FileHeader:
  Class:   ELFCLASS32
  Data:    ELFDATA2LSB
  Type:    ET_REL
  Machine: EM_MIPS
Symbols:
  - Name:  foo
    Other: [ STO_MIPS_OPTIONAL ]

## Test that we can mix named and unnamed constants and set
## st_other to any arbitrary value.

# RUN: yaml2obj --docnum=3 %s > %t3
# RUN: llvm-readobj --symbols %t3 | FileCheck %s --check-prefix=VALUE

# VALUE:      Name: foo
# VALUE:      Other [
# VALUE-SAME: (0x4)

# VALUE:      Name: bar
# VALUE:      Other [
# VALUE-SAME: (0x7)

# VALUE:      Name: zed
# VALUE:      Other [
# VALUE-SAME: (0xFF)

--- !ELF
FileHeader:
  Class:   ELFCLASS32
  Data:    ELFDATA2LSB
  Type:    ET_REL
  Machine: EM_MIPS
Symbols:
  - Name:  foo
    Other: [ 0x4 ]
  - Name:  bar
    Other: [ STV_PROTECTED, 4 ]
  - Name:  zed
    Other: [ STV_PROTECTED, STO_MIPS_OPTIONAL, 0xf8 ]
