10135aa7bSzhijian## Test the "-X" option. 20135aa7bSzhijian## The option specifies the type of object file to examine. 30135aa7bSzhijian 40135aa7bSzhijian# RUN: llvm-as -o %t32.bc %p/Inputs/bitcode-sym32.ll 50135aa7bSzhijian# RUN: llvm-as -o %t64.bc %p/Inputs/bitcode-sym64.ll 60135aa7bSzhijian 70135aa7bSzhijian# RUN: llvm-nm --format=just-symbols -X32 %t32.bc %t64.bc | \ 80135aa7bSzhijian# RUN: FileCheck %s -DFILE1=%t32.bc --check-prefixes=BITCODE32 --implicit-check-not={{.}} 90135aa7bSzhijian# RUN: llvm-nm --format=just-symbols -X64 %t32.bc %t64.bc | \ 100135aa7bSzhijian# RUN: FileCheck %s -DFILE2=%t64.bc --check-prefixes=BITCODE64 --implicit-check-not={{.}} 110135aa7bSzhijian# RUN: llvm-nm --format=just-symbols -X32_64 %t32.bc %t64.bc | \ 120135aa7bSzhijian# RUN: FileCheck %s -DFILE1=%t32.bc -DFILE2=%t64.bc --check-prefixes=BITCODE32,BITCODE64 130135aa7bSzhijian# RUN: llvm-nm --format=just-symbols -Xany %t32.bc %t64.bc | \ 140135aa7bSzhijian# RUN: FileCheck %s -DFILE1=%t32.bc -DFILE2=%t64.bc --check-prefixes=BITCODE32,BITCODE64 150135aa7bSzhijian 160135aa7bSzhijian# BITCODE32: [[FILE1]]: 170135aa7bSzhijian# BITCODE32-NEXT: C32 180135aa7bSzhijian# BITCODE32-NEXT: foo32 190135aa7bSzhijian# BITCODE32-NEXT: undef_var32 200135aa7bSzhijian 210135aa7bSzhijian# BITCODE64: [[FILE2]]: 220135aa7bSzhijian# BITCODE64-NEXT: C64 230135aa7bSzhijian# BITCODE64-NEXT: bar64 240135aa7bSzhijian# BITCODE64-NEXT: static_var64 250135aa7bSzhijian 260135aa7bSzhijian# RUN: yaml2obj --docnum=1 -DCLASS=ELFCLASS32 %s -o %t_elf32.o 270135aa7bSzhijian# RUN: yaml2obj --docnum=1 -DCLASS=ELFCLASS64 %s -o %t_elf64.o 280135aa7bSzhijian 290135aa7bSzhijian# RUN: llvm-nm --format=just-symbols -X32 %t_elf32.o %t_elf64.o | \ 300135aa7bSzhijian# RUN: FileCheck %s -DFILE32=%t_elf32.o --check-prefixes=ELF32 --implicit-check-not={{.}} 310135aa7bSzhijian# RUN: llvm-nm --format=just-symbols -X64 %t_elf32.o %t_elf64.o | \ 320135aa7bSzhijian# RUN: FileCheck %s -DFILE64=%t_elf64.o --check-prefixes=ELF64 --implicit-check-not={{.}} 330135aa7bSzhijian# RUN: llvm-nm --format=just-symbols -X32_64 %t_elf32.o %t_elf64.o | \ 340135aa7bSzhijian# RUN: FileCheck %s -DFILE32=%t_elf32.o -DFILE64=%t_elf64.o --check-prefixes=ELF32,ELF64 350135aa7bSzhijian# RUN: llvm-nm --format=just-symbols -Xany %t_elf32.o %t_elf64.o | \ 360135aa7bSzhijian# RUN: FileCheck %s -DFILE32=%t_elf32.o -DFILE64=%t_elf64.o --check-prefixes=ELF32,ELF64 370135aa7bSzhijian 380135aa7bSzhijian# ELF32: [[FILE32]]: 390135aa7bSzhijian# ELF32-NEXT: ELFCLASS32_var 400135aa7bSzhijian 410135aa7bSzhijian# ELF64: [[FILE64]]: 420135aa7bSzhijian# ELF64-NEXT: ELFCLASS64_var 430135aa7bSzhijian 440135aa7bSzhijian--- !ELF 450135aa7bSzhijianFileHeader: 460135aa7bSzhijian Class: [[CLASS]] 470135aa7bSzhijian Data: ELFDATA2LSB 480135aa7bSzhijian Type: ET_REL 490135aa7bSzhijianSymbols: 500135aa7bSzhijian - Name: [[CLASS]]_var 510135aa7bSzhijian 520135aa7bSzhijian# RUN: yaml2obj --docnum=2 -DFLAG=0x1DF %s -o %t_xcoff32.o 530135aa7bSzhijian# RUN: yaml2obj --docnum=2 -DFLAG=0x1F7 %s -o %t_xcoff64.o 540135aa7bSzhijian# RUN: rm -f %t.a 55*fe3b621fSzhijian# RUN: llvm-ar -q -c %t.a %t_xcoff32.o %t_xcoff64.o 560135aa7bSzhijian 570135aa7bSzhijian# RUN: llvm-nm --format=just-symbols -X32 %t_xcoff32.o | \ 580135aa7bSzhijian# RUN: FileCheck --check-prefixes=XCOFF32 %s --implicit-check-not={{.}} 590135aa7bSzhijian# RUN: llvm-nm --format=just-symbols -X32 %t.a | \ 600135aa7bSzhijian# RUN: FileCheck --check-prefixes=ARC32,XCOFF32 %s -DFILE=%basename_t --implicit-check-not={{.}} 610135aa7bSzhijian# ARC32: [[FILE]].tmp_xcoff32.o: 620135aa7bSzhijian# XCOFF32: var_0x1DF 630135aa7bSzhijian 640135aa7bSzhijian# RUN: llvm-nm --format=just-symbols -X64 %t_xcoff64.o | \ 650135aa7bSzhijian# RUN: FileCheck --check-prefixes=XCOFF64 %s --implicit-check-not={{.}} 660135aa7bSzhijian# RUN: llvm-nm --format=just-symbols -X64 %t.a | \ 670135aa7bSzhijian# RUN: FileCheck --check-prefixes=ARC64,XCOFF64 -DFILE=%basename_t %s --implicit-check-not={{.}} 680135aa7bSzhijian# ARC64: [[FILE]].tmp_xcoff64.o: 690135aa7bSzhijian# XCOFF64: var_0x1F7 700135aa7bSzhijian 710135aa7bSzhijian# RUN: llvm-nm --format=just-symbols %t_xcoff32.o %t_xcoff64.o | \ 720135aa7bSzhijian# RUN: FileCheck --check-prefixes=BOTH %s -DFILE32=%t_xcoff32.o -DFILE64=%t_xcoff64.o --match-full-lines 730135aa7bSzhijian# RUN: llvm-nm --format=just-symbols -X32_64 %t_xcoff32.o %t_xcoff64.o | \ 740135aa7bSzhijian# RUN: FileCheck --check-prefixes=BOTH %s -DFILE32=%t_xcoff32.o -DFILE64=%t_xcoff64.o --match-full-lines 750135aa7bSzhijian# RUN: llvm-nm --format=just-symbols -Xany %t_xcoff32.o %t_xcoff64.o | \ 760135aa7bSzhijian# RUN: FileCheck --check-prefixes=BOTH %s -DFILE32=%t_xcoff32.o -DFILE64=%t_xcoff64.o --match-full-lines 770135aa7bSzhijian 780135aa7bSzhijian# BOTH: [[FILE32]]: 790135aa7bSzhijian# BOTH-NEXT: var_0x1DF 800135aa7bSzhijian# BOTH-EMPTY: 810135aa7bSzhijian# BOTH-NEXT: [[FILE64]]: 820135aa7bSzhijian# BOTH-NEXT: var_0x1F7 830135aa7bSzhijian 840135aa7bSzhijian# RUN: llvm-nm --format=just-symbols -X32_64 %t.a | \ 850135aa7bSzhijian# RUN: FileCheck --check-prefixes=ARCHIVE-BOTH -DFILE=%basename_t --match-full-lines %s 860135aa7bSzhijian# RUN: llvm-nm --format=just-symbols -Xany %t.a | \ 870135aa7bSzhijian# RUN: FileCheck --check-prefixes=ARCHIVE-BOTH -DFILE=%basename_t --match-full-lines %s 880135aa7bSzhijian 890135aa7bSzhijian# ARCHIVE-BOTH: [[FILE]].tmp_xcoff32.o: 900135aa7bSzhijian# ARCHIVE-BOTH-NEXT: var_0x1DF{{[[:space:]]}} 910135aa7bSzhijian# ARCHIVE-BOTH-NEXT: [[FILE]].tmp_xcoff64.o: 920135aa7bSzhijian# ARCHIVE-BOTH-NEXT: var_0x1F7 930135aa7bSzhijian 940135aa7bSzhijian# RUN: llvm-nm --format=just-symbols -X64 %t_xcoff32.o | count 0 950135aa7bSzhijian# RUN: llvm-nm --format=just-symbols -X32 %t_xcoff64.o | count 0 960135aa7bSzhijian 970135aa7bSzhijian# RUN: not llvm-nm --format=just-symbols -X33 %t_xcoff32.o 2>&1 | FileCheck %s --check-prefixes=ERR 980135aa7bSzhijian# ERR: error: : -X value should be one of: 32, 64, 32_64, (default) any 990135aa7bSzhijian# ERR-NEXT: var_0x1DF 1000135aa7bSzhijian 1010135aa7bSzhijian--- !XCOFF 1020135aa7bSzhijianFileHeader: 1030135aa7bSzhijian MagicNumber: [[FLAG]] 1040135aa7bSzhijianSymbols: 1050135aa7bSzhijian - Name: var_[[FLAG]] 106