xref: /llvm-project/llvm/test/tools/llvm-nm/XCOFF/basic.test (revision 6bf20aa59030175139853e48ccdfe31d718c1566)
1*6bf20aa5Szhijian## Test llvm-nm for XCOFF object files.
2*6bf20aa5Szhijian
3*6bf20aa5Szhijian# RUN: yaml2obj %s -o %t.o
4*6bf20aa5Szhijian# RUN: llvm-nm  %t.o | FileCheck --match-full-lines %s
5*6bf20aa5Szhijian
6*6bf20aa5Szhijian--- !XCOFF
7*6bf20aa5SzhijianFileHeader:
8*6bf20aa5Szhijian  MagicNumber:          0x1DF
9*6bf20aa5SzhijianSections:
10*6bf20aa5Szhijian  - Name:                    .text
11*6bf20aa5Szhijian    Address:                 0x0
12*6bf20aa5Szhijian    Flags:                   [ STYP_TEXT ]
13*6bf20aa5Szhijian  - Name:                    .data
14*6bf20aa5Szhijian    Flags:                   [ STYP_DATA ]
15*6bf20aa5Szhijian  - Name:                    .bss
16*6bf20aa5Szhijian    Flags:                   [ STYP_BSS ]
17*6bf20aa5Szhijian  - Name:                    .debug
18*6bf20aa5Szhijian    Flags:                   [ STYP_DEBUG ]
19*6bf20aa5Szhijian  - Name:                    .except
20*6bf20aa5Szhijian    Flags:                   [ STYP_EXCEPT ]
21*6bf20aa5SzhijianSymbols:
22*6bf20aa5Szhijian  - Name: .file
23*6bf20aa5Szhijian    Section: N_DEBUG
24*6bf20aa5Szhijian    StorageClass: C_FILE
25*6bf20aa5Szhijian  - Name:               .text
26*6bf20aa5Szhijian    Value:              0x10
27*6bf20aa5Szhijian    Section:            .text
28*6bf20aa5Szhijian    StorageClass:       C_STAT
29*6bf20aa5Szhijian    NumberOfAuxEntries: 1
30*6bf20aa5Szhijian  - Name:               .data
31*6bf20aa5Szhijian    Value:              0x80
32*6bf20aa5Szhijian    Section:            .data
33*6bf20aa5Szhijian    StorageClass:       C_STAT
34*6bf20aa5Szhijian    NumberOfAuxEntries: 1
35*6bf20aa5Szhijian  - Name:               .bss
36*6bf20aa5Szhijian    Value:              0x310
37*6bf20aa5Szhijian    Section:            .bss
38*6bf20aa5Szhijian    StorageClass:       C_STAT
39*6bf20aa5Szhijian  - Name:               .debug
40*6bf20aa5Szhijian    Section:            .debug
41*6bf20aa5Szhijian    StorageClass:       C_STAT
42*6bf20aa5Szhijian  - Name:               ._ZL5func0v
43*6bf20aa5Szhijian    Section:            .text
44*6bf20aa5Szhijian    StorageClass:       C_EXT
45*6bf20aa5Szhijian    Type:               0x20
46*6bf20aa5Szhijian    AuxEntries:
47*6bf20aa5Szhijian     - Type:                   AUX_CSECT
48*6bf20aa5Szhijian       SymbolAlignmentAndType: 0x02
49*6bf20aa5Szhijian       StorageMappingClass:    XMC_PR
50*6bf20aa5Szhijian  - Name:               ._Z3fwpv
51*6bf20aa5Szhijian    Section:            .text
52*6bf20aa5Szhijian    StorageClass:       C_WEAKEXT
53*6bf20aa5Szhijian    Type:               0x20
54*6bf20aa5Szhijian    AuxEntries:
55*6bf20aa5Szhijian     - Type:                   AUX_CSECT
56*6bf20aa5Szhijian       SymbolAlignmentAndType: 0x02
57*6bf20aa5Szhijian       StorageMappingClass:    XMC_PR
58*6bf20aa5Szhijian  - Name:               val
59*6bf20aa5Szhijian    Section:            .data
60*6bf20aa5Szhijian    StorageClass:       C_EXT
61*6bf20aa5Szhijian    Type:               0x20
62*6bf20aa5Szhijian    AuxEntries:
63*6bf20aa5Szhijian     - Type:                   AUX_CSECT
64*6bf20aa5Szhijian       SymbolAlignmentAndType: 0x01
65*6bf20aa5Szhijian       StorageMappingClass:    XMC_RW
66*6bf20aa5Szhijian       SectionOrLength:        0x4
67*6bf20aa5Szhijian  - Name:               extval
68*6bf20aa5Szhijian    Section:            N_UNDEF
69*6bf20aa5Szhijian    StorageClass:       C_EXT
70*6bf20aa5Szhijian    Type:               0x00
71*6bf20aa5Szhijian    AuxEntries:
72*6bf20aa5Szhijian     - Type:                   AUX_CSECT
73*6bf20aa5Szhijian       SymbolAlignmentAndType: 0x01
74*6bf20aa5Szhijian       StorageMappingClass:    XMC_UA
75*6bf20aa5Szhijian       SectionOrLength:        0x0
76*6bf20aa5Szhijian  - Name:               comval
77*6bf20aa5Szhijian    Section:            .bss
78*6bf20aa5Szhijian    Value:              0x13C
79*6bf20aa5Szhijian    StorageClass:       C_EXT
80*6bf20aa5Szhijian    Type:               0x00
81*6bf20aa5Szhijian    AuxEntries:
82*6bf20aa5Szhijian     - Type:                   AUX_CSECT
83*6bf20aa5Szhijian       SymbolAlignmentAndType: 0x03
84*6bf20aa5Szhijian       StorageMappingClass:    XMC_RW
85*6bf20aa5Szhijian       SectionOrLength:        0x0
86*6bf20aa5Szhijian  - Name:      abs
87*6bf20aa5Szhijian    Section:   N_ABS
88*6bf20aa5Szhijian  - Name:      symIn_N_debug
89*6bf20aa5Szhijian    Section:   N_DEBUG
90*6bf20aa5Szhijian  - Name:      .except
91*6bf20aa5Szhijian    Section:   .except
92*6bf20aa5Szhijian
93*6bf20aa5Szhijian## Global weak symbol.
94*6bf20aa5Szhijian# CHECK:      00000000 W ._Z3fwpv
95*6bf20aa5Szhijian## Global symbol in .text section.
96*6bf20aa5Szhijian# CHECK-NEXT: 00000000 T ._ZL5func0v
97*6bf20aa5Szhijian## Symbol in .bss section.
98*6bf20aa5Szhijian# CHECK-NEXT: 00000310 b .bss
99*6bf20aa5Szhijian## Local symbol in .data section.
100*6bf20aa5Szhijian# CHECK-NEXT: 00000080 d .data
101*6bf20aa5Szhijian## Symbol in .debug section.
102*6bf20aa5Szhijian# CHECK-NEXT: 00000000 N .debug
103*6bf20aa5Szhijian## Symbol in .except section.
104*6bf20aa5Szhijian# CHECK-NEXT: 00000000 ? .except
105*6bf20aa5Szhijian## Symbol .file.
106*6bf20aa5Szhijian# CHECK-NEXT: 00000000 f .file
107*6bf20aa5Szhijian## Local symbol in .text section.
108*6bf20aa5Szhijian# CHECK-NEXT: 00000010 t .text
109*6bf20aa5Szhijian## Absolute symbol.
110*6bf20aa5Szhijian# CHECK-NEXT: 00000000 a abs
111*6bf20aa5Szhijian## Common symbol.
112*6bf20aa5Szhijian# CHECK-NEXT: 0000013c C comval
113*6bf20aa5Szhijian## Undefined symbol.
114*6bf20aa5Szhijian# CHECK-NEXT:          U extval
115*6bf20aa5Szhijian## Symbol in N_DEBUG section.
116*6bf20aa5Szhijian# CHECK-NEXT: 00000000 ? symIn_N_debug
117*6bf20aa5Szhijian## Global symbol in .data section.
118*6bf20aa5Szhijian# CHECK-NEXT: 00000000 D val
119