1## Test the "-X" option. 2## The option specifies the type of object file to examine. 3 4# RUN: llvm-as -o %t32.bc %p/Inputs/bitcode-sym32.ll 5# RUN: llvm-as -o %t64.bc %p/Inputs/bitcode-sym64.ll 6 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 15 16# BITCODE32: [[FILE1]]: 17# BITCODE32-NEXT: C32 18# BITCODE32-NEXT: foo32 19# BITCODE32-NEXT: undef_var32 20 21# BITCODE64: [[FILE2]]: 22# BITCODE64-NEXT: C64 23# BITCODE64-NEXT: bar64 24# BITCODE64-NEXT: static_var64 25 26# RUN: yaml2obj --docnum=1 -DCLASS=ELFCLASS32 %s -o %t_elf32.o 27# RUN: yaml2obj --docnum=1 -DCLASS=ELFCLASS64 %s -o %t_elf64.o 28 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 37 38# ELF32: [[FILE32]]: 39# ELF32-NEXT: ELFCLASS32_var 40 41# ELF64: [[FILE64]]: 42# ELF64-NEXT: ELFCLASS64_var 43 44--- !ELF 45FileHeader: 46 Class: [[CLASS]] 47 Data: ELFDATA2LSB 48 Type: ET_REL 49Symbols: 50 - Name: [[CLASS]]_var 51 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 56 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 63 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 70 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 77 78# BOTH: [[FILE32]]: 79# BOTH-NEXT: var_0x1DF 80# BOTH-EMPTY: 81# BOTH-NEXT: [[FILE64]]: 82# BOTH-NEXT: var_0x1F7 83 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 88 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 93 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 96 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 100 101--- !XCOFF 102FileHeader: 103 MagicNumber: [[FLAG]] 104Symbols: 105 - Name: var_[[FLAG]] 106