Follow up to d0858bffa11, add missing REQUIRES x86
[llvm-project.git] / llvm / test / tools / llvm-nm / option-X.test
blobbecc23ff7d8e3a48a86f257b77fd218a69e88e1b
1 ## Test the "-X" option.
2 ## The option specifies the type of object file to examine.
4 # RUN: llvm-as -o %t32.bc %p/Inputs/bitcode-sym32.ll
5 # RUN: llvm-as -o %t64.bc %p/Inputs/bitcode-sym64.ll
7 # RUN: llvm-nm --format=just-symbols -X32 %t32.bc %t64.bc | \
8 # RUN:   FileCheck %s -DFILE1=%t32.bc --check-prefixes=BITCODE32 --implicit-check-not={{.}}
9 # RUN: llvm-nm --format=just-symbols -X64 %t32.bc %t64.bc | \
10 # RUN:   FileCheck %s -DFILE2=%t64.bc --check-prefixes=BITCODE64 --implicit-check-not={{.}}
11 # RUN: llvm-nm --format=just-symbols -X32_64 %t32.bc %t64.bc | \
12 # RUN:   FileCheck %s -DFILE1=%t32.bc -DFILE2=%t64.bc --check-prefixes=BITCODE32,BITCODE64
13 # RUN: llvm-nm --format=just-symbols -Xany %t32.bc %t64.bc | \
14 # RUN:   FileCheck %s -DFILE1=%t32.bc -DFILE2=%t64.bc --check-prefixes=BITCODE32,BITCODE64
16 # BITCODE32:      [[FILE1]]:
17 # BITCODE32-NEXT: C32
18 # BITCODE32-NEXT: foo32
19 # BITCODE32-NEXT: undef_var32
21 # BITCODE64:      [[FILE2]]:
22 # BITCODE64-NEXT: C64
23 # BITCODE64-NEXT: bar64
24 # BITCODE64-NEXT: static_var64
26 # RUN: yaml2obj --docnum=1 -DCLASS=ELFCLASS32 %s -o %t_elf32.o
27 # RUN: yaml2obj --docnum=1 -DCLASS=ELFCLASS64 %s -o %t_elf64.o
29 # RUN: llvm-nm --format=just-symbols -X32 %t_elf32.o %t_elf64.o | \
30 # RUN:   FileCheck %s -DFILE32=%t_elf32.o --check-prefixes=ELF32 --implicit-check-not={{.}}
31 # RUN: llvm-nm --format=just-symbols -X64 %t_elf32.o %t_elf64.o | \
32 # RUN:   FileCheck %s -DFILE64=%t_elf64.o --check-prefixes=ELF64 --implicit-check-not={{.}}
33 # RUN: llvm-nm --format=just-symbols -X32_64 %t_elf32.o %t_elf64.o | \
34 # RUN:   FileCheck %s -DFILE32=%t_elf32.o -DFILE64=%t_elf64.o --check-prefixes=ELF32,ELF64
35 # RUN: llvm-nm --format=just-symbols -Xany %t_elf32.o %t_elf64.o | \
36 # RUN:   FileCheck %s -DFILE32=%t_elf32.o -DFILE64=%t_elf64.o --check-prefixes=ELF32,ELF64
38 # ELF32:      [[FILE32]]:
39 # ELF32-NEXT: ELFCLASS32_var
41 # ELF64:      [[FILE64]]:
42 # ELF64-NEXT: ELFCLASS64_var
44 --- !ELF
45 FileHeader:
46   Class:   [[CLASS]]
47   Data:    ELFDATA2LSB
48   Type:    ET_REL
49 Symbols:
50   - Name:    [[CLASS]]_var
52 # RUN: yaml2obj --docnum=2 -DFLAG=0x1DF %s -o %t_xcoff32.o
53 # RUN: yaml2obj --docnum=2 -DFLAG=0x1F7 %s -o %t_xcoff64.o
54 # RUN: rm -f %t.a
55 # RUN: llvm-ar -q -c %t.a %t_xcoff32.o %t_xcoff64.o
57 # RUN: llvm-nm --format=just-symbols -X32 %t_xcoff32.o | \
58 # RUN:   FileCheck --check-prefixes=XCOFF32 %s --implicit-check-not={{.}}
59 # RUN: llvm-nm --format=just-symbols -X32 %t.a | \
60 # RUN:   FileCheck --check-prefixes=ARC32,XCOFF32 %s -DFILE=%basename_t --implicit-check-not={{.}}
61 # ARC32:      [[FILE]].tmp_xcoff32.o:
62 # XCOFF32:      var_0x1DF
64 # RUN: llvm-nm --format=just-symbols -X64 %t_xcoff64.o | \
65 # RUN:   FileCheck --check-prefixes=XCOFF64 %s --implicit-check-not={{.}}
66 # RUN: llvm-nm --format=just-symbols -X64 %t.a | \
67 # RUN:   FileCheck --check-prefixes=ARC64,XCOFF64 -DFILE=%basename_t %s --implicit-check-not={{.}}
68 # ARC64:       [[FILE]].tmp_xcoff64.o:
69 # XCOFF64:       var_0x1F7
71 # RUN: llvm-nm --format=just-symbols %t_xcoff32.o %t_xcoff64.o | \
72 # RUN:   FileCheck --check-prefixes=BOTH %s -DFILE32=%t_xcoff32.o -DFILE64=%t_xcoff64.o --match-full-lines
73 # RUN: llvm-nm --format=just-symbols -X32_64 %t_xcoff32.o %t_xcoff64.o | \
74 # RUN:   FileCheck --check-prefixes=BOTH %s -DFILE32=%t_xcoff32.o -DFILE64=%t_xcoff64.o --match-full-lines
75 # RUN: llvm-nm --format=just-symbols -Xany %t_xcoff32.o %t_xcoff64.o | \
76 # RUN:   FileCheck --check-prefixes=BOTH %s -DFILE32=%t_xcoff32.o -DFILE64=%t_xcoff64.o --match-full-lines
78 # BOTH:        [[FILE32]]:
79 # BOTH-NEXT:   var_0x1DF
80 # BOTH-EMPTY:
81 # BOTH-NEXT:   [[FILE64]]:
82 # BOTH-NEXT:   var_0x1F7
84 # RUN: llvm-nm --format=just-symbols -X32_64 %t.a | \
85 # RUN:   FileCheck --check-prefixes=ARCHIVE-BOTH -DFILE=%basename_t --match-full-lines %s
86 # RUN: llvm-nm --format=just-symbols -Xany %t.a | \
87 # RUN:   FileCheck --check-prefixes=ARCHIVE-BOTH -DFILE=%basename_t --match-full-lines %s
89 # ARCHIVE-BOTH:      [[FILE]].tmp_xcoff32.o:
90 # ARCHIVE-BOTH-NEXT: var_0x1DF{{[[:space:]]}}
91 # ARCHIVE-BOTH-NEXT: [[FILE]].tmp_xcoff64.o:
92 # ARCHIVE-BOTH-NEXT: var_0x1F7
94 # RUN: llvm-nm --format=just-symbols -X64 %t_xcoff32.o | count 0
95 # RUN: llvm-nm --format=just-symbols -X32 %t_xcoff64.o | count 0
97 # RUN: not llvm-nm --format=just-symbols -X33 %t_xcoff32.o 2>&1 |  FileCheck %s --check-prefixes=ERR
98 # ERR:      error: : -X value should be one of: 32, 64, 32_64, (default) any
99 # ERR-NEXT: var_0x1DF
101 --- !XCOFF
102 FileHeader:
103   MagicNumber:       [[FLAG]]
104 Symbols:
105   - Name:            var_[[FLAG]]