## 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-readobj --symbols %t.o --elf-output-style=JSON --pretty-print | FileCheck %s --check-prefix=MIPS-JSON
# 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
# MIPS-JSON: "Name": "foo",
# MIPS-JSON: "Other": {
# MIPS-JSON-NEXT: "Value": 172,
# MIPS-JSON-NEXT: "Flags": [
# MIPS-JSON-NEXT: {
# MIPS-JSON-NEXT: "Name": "STO_MIPS_MICROMIPS",
# MIPS-JSON-NEXT: "Value": 128
# MIPS-JSON-NEXT: },
# MIPS-JSON-NEXT: {
# MIPS-JSON-NEXT: "Name": "STO_MIPS_OPTIONAL",
# MIPS-JSON-NEXT: "Value": 4
# MIPS-JSON-NEXT: },
# MIPS-JSON-NEXT: {
# MIPS-JSON-NEXT: "Name": "STO_MIPS_PIC",
# MIPS-JSON-NEXT: "Value": 32
# MIPS-JSON-NEXT: },
# MIPS-JSON-NEXT: {
# MIPS-JSON-NEXT: "Name": "STO_MIPS_PLT",
# MIPS-JSON-NEXT: "Value": 8
# MIPS-JSON-NEXT: }
# MIPS-JSON-NEXT: ]
# MIPS-JSON-NEXT: },
# MIPS-JSON: "Name": "bar",
# MIPS-JSON: "Other": {
# MIPS-JSON-NEXT: "Value": 240,
# MIPS-JSON-NEXT: "Flags": [
# MIPS-JSON-NEXT: {
# MIPS-JSON-NEXT: "Name": "STO_MIPS_MIPS16",
# MIPS-JSON-NEXT: "Value": 240
# MIPS-JSON-NEXT: }
# MIPS-JSON-NEXT: ]
# MIPS-JSON-NEXT: },
--- !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 ]