[InstCombine] Signed saturation patterns
[llvm-core.git] / test / tools / yaml2obj / elf-symbol-stother.yaml
blob997a4b0be55fd51c1ff502f113540b0816b81fa1
1 ## Test how yaml2obj sets the value of a symbol's st_other fields.
3 ## Show that yaml2obj reports an error when using an STO_* flag that belongs
4 ## to a different machine type to what is specified by the YAML.
6 # RUN: not yaml2obj --docnum=1 2>&1 %s | FileCheck %s --check-prefix=ERR
7 # ERR: error: an unknown value is used for symbol's 'Other' field: STO_MIPS_OPTIONAL
9 --- !ELF
10 FileHeader:
11   Class:   ELFCLASS32
12   Data:    ELFDATA2LSB
13   Type:    ET_REL
14   Machine: EM_386
15 Symbols:
16   - Name:  foo
17     Other: [ STO_MIPS_OPTIONAL ]
19 ## Test that STO_* can be used with their correct machine type.
20 ## We use the same YAML as above, but with a change of machine type.
22 # RUN: yaml2obj --docnum=2 %s > %t2
23 # RUN: llvm-readobj --symbols %t2 | FileCheck %s --check-prefix=USE-OTHER
25 # USE-OTHER:      Name: foo
26 # USE-OTHER:      Other [ (0x4)
27 # USE-OTHER-NEXT:   STO_MIPS_OPTIONAL (0x4)
28 # USE-OTHER-NEXT: ]
30 --- !ELF
31 FileHeader:
32   Class:   ELFCLASS32
33   Data:    ELFDATA2LSB
34   Type:    ET_REL
35   Machine: EM_MIPS
36 Symbols:
37   - Name:  foo
38     Other: [ STO_MIPS_OPTIONAL ]
40 ## Test that we can mix named and unnamed constants and set
41 ## st_other to any arbitrary value.
43 # RUN: yaml2obj --docnum=3 %s > %t3
44 # RUN: llvm-readobj --symbols %t3 | FileCheck %s --check-prefix=VALUE
46 # VALUE:      Name: foo
47 # VALUE:      Other [
48 # VALUE-SAME: (0x4)
50 # VALUE:      Name: bar
51 # VALUE:      Other [
52 # VALUE-SAME: (0x7)
54 # VALUE:      Name: zed
55 # VALUE:      Other [
56 # VALUE-SAME: (0xFF)
58 --- !ELF
59 FileHeader:
60   Class:   ELFCLASS32
61   Data:    ELFDATA2LSB
62   Type:    ET_REL
63   Machine: EM_MIPS
64 Symbols:
65   - Name:  foo
66     Other: [ 0x4 ]
67   - Name:  bar
68     Other: [ STV_PROTECTED, 4 ]
69   - Name:  zed
70     Other: [ STV_PROTECTED, STO_MIPS_OPTIONAL, 0xf8 ]