xref: /llvm-project/llvm/test/tools/llvm-nm/option-X-AIX.test (revision b135358877e94dbd5d2f3231c2c98309fae70628)
1*b1353588Szhijian# REQUIRES: system-aix
2*b1353588Szhijian## Test default "-X" option and environment variable "OBJECT_MODE" on AIX OS.
3*b1353588Szhijian
4*b1353588Szhijian# RUN: yaml2obj -DFLAG=0x1DF %s -o %t_xcoff32.o
5*b1353588Szhijian# RUN: yaml2obj -DFLAG=0x1F7 %s -o %t_xcoff64.o
6*b1353588Szhijian# RUN: rm -rf %t.a
7*b1353588Szhijian# RUN: unset OBJECT_MODE
8*b1353588Szhijian# RUN: env OBJECT_MODE=any llvm-ar -q -c %t.a %t_xcoff32.o %t_xcoff64.o
9*b1353588Szhijian
10*b1353588Szhijian## Test default "-X" option.
11*b1353588Szhijian# RUN: llvm-nm --format=just-symbols %t_xcoff32.o %t_xcoff64.o | \
12*b1353588Szhijian# RUN:   FileCheck -DFILE32=%t_xcoff32.o --check-prefixes=XCOFF32 %s --implicit-check-not={{.}}
13*b1353588Szhijian
14*b1353588Szhijian## Test environment variable "OBJECT_MODE".
15*b1353588Szhijian# RUN: env OBJECT_MODE=32 llvm-nm --format=just-symbols %t_xcoff32.o %t_xcoff64.o | \
16*b1353588Szhijian# RUN:   FileCheck -DFILE32=%t_xcoff32.o --check-prefixes=XCOFF32 %s --implicit-check-not={{.}}
17*b1353588Szhijian# RUN: env OBJECT_MODE=64 llvm-nm --format=just-symbols %t_xcoff32.o %t_xcoff64.o | \
18*b1353588Szhijian# RUN:   FileCheck -DFILE64=%t_xcoff64.o --check-prefixes=XCOFF64 %s --implicit-check-not={{.}}
19*b1353588Szhijian# RUN: env OBJECT_MODE=32_64 llvm-nm --format=just-symbols %t_xcoff32.o %t_xcoff64.o | \
20*b1353588Szhijian# RUN:   FileCheck --check-prefixes=XCOFF32,XCOFF64 %s -DFILE32=%t_xcoff32.o -DFILE64=%t_xcoff64.o --match-full-lines
21*b1353588Szhijian# RUN: env OBJECT_MODE=any llvm-nm --format=just-symbols %t_xcoff32.o %t_xcoff64.o | \
22*b1353588Szhijian# RUN:   FileCheck --check-prefixes=XCOFF32,XCOFF64 %s -DFILE32=%t_xcoff32.o -DFILE64=%t_xcoff64.o --match-full-lines
23*b1353588Szhijian# RUN: env OBJECT_MODE=32 llvm-nm --format=just-symbols %t.a | \
24*b1353588Szhijian# RUN:   FileCheck -DFILE=%basename_t --check-prefixes=ARC32 %s --implicit-check-not={{.}}
25*b1353588Szhijian# RUN: env OBJECT_MODE=64 llvm-nm --format=just-symbols %t.a | \
26*b1353588Szhijian# RUN:   FileCheck -DFILE=%basename_t --check-prefixes=ARC64 %s --implicit-check-not={{.}}
27*b1353588Szhijian
28*b1353588Szhijian## Test -X option overrides environment variable "OBJECT_MODE".
29*b1353588Szhijian# RUN: env OBJECT_MODE=any llvm-nm -X32 --format=just-symbols %t_xcoff32.o %t_xcoff64.o | \
30*b1353588Szhijian# RUN:   FileCheck -DFILE32=%t_xcoff32.o --check-prefixes=XCOFF32 %s --implicit-check-not={{.}}
31*b1353588Szhijian# RUN: env OBJECT_MODE=any llvm-nm -X64 --format=just-symbols %t_xcoff32.o %t_xcoff64.o | \
32*b1353588Szhijian# RUN:   FileCheck -DFILE64=%t_xcoff64.o --check-prefixes=XCOFF64 %s --implicit-check-not={{.}}
33*b1353588Szhijian# RUN: env OBJECT_MODE=any llvm-nm -X32_64 --format=just-symbols %t_xcoff32.o %t_xcoff64.o | \
34*b1353588Szhijian# RUN:   FileCheck --check-prefixes=XCOFF32,XCOFF64 %s -DFILE32=%t_xcoff32.o -DFILE64=%t_xcoff64.o --match-full-lines
35*b1353588Szhijian# RUN: env OBJECT_MODE=32 llvm-nm -Xany --format=just-symbols %t_xcoff32.o %t_xcoff64.o | \
36*b1353588Szhijian# RUN:   FileCheck --check-prefixes=XCOFF32,XCOFF64 %s -DFILE32=%t_xcoff32.o -DFILE64=%t_xcoff64.o --match-full-lines
37*b1353588Szhijian
38*b1353588Szhijian# XCOFF32:           [[FILE32]]:
39*b1353588Szhijian# XCOFF32-NEXT:      var_0x1DF
40*b1353588Szhijian# XCOFF64:           [[FILE64]]:
41*b1353588Szhijian# XCOFF64-NEXT:      var_0x1F7
42*b1353588Szhijian
43*b1353588Szhijian# ARC32:           [[FILE]].tmp_xcoff32.o:
44*b1353588Szhijian# ARC32-NEXT:      var_0x1DF
45*b1353588Szhijian# ARC64:           [[FILE]].tmp_xcoff64.o:
46*b1353588Szhijian# ARC64-NEXT:      var_0x1F7
47*b1353588Szhijian
48*b1353588Szhijian--- !XCOFF
49*b1353588SzhijianFileHeader:
50*b1353588Szhijian  MagicNumber:       [[FLAG]]
51*b1353588SzhijianSymbols:
52*b1353588Szhijian  - Name:            var_[[FLAG]]
53