xref: /llvm-project/llvm/test/tools/llvm-readobj/MachO/stabs.yaml (revision 84cc39c329f8d4910b8f558971d715f949ce1e94)
1*84cc39c3SJez Ng## Verify that llvm-readobj can dump files containing stabs symbols,
2*84cc39c3SJez Ng## particularly symbols of type N_OSO which have repurposed the n_sect field
3*84cc39c3SJez Ng## to store a non-section-index value.
4*84cc39c3SJez Ng
5*84cc39c3SJez Ng# RUN: yaml2obj %s -o %t
6*84cc39c3SJez Ng# RUN: llvm-readobj --syms %t | FileCheck %s
7*84cc39c3SJez Ng
8*84cc39c3SJez Ng# CHECK:      Symbols [
9*84cc39c3SJez Ng# CHECK-NEXT:   Symbol {
10*84cc39c3SJez Ng# CHECK-NEXT:     Name: /Volumes/Sandbox/ (2)
11*84cc39c3SJez Ng# CHECK-NEXT:     Type: SymDebugTable (0x64)
12*84cc39c3SJez Ng# CHECK-NEXT:     Section:  (0x0)
13*84cc39c3SJez Ng# CHECK-NEXT:     RefType: UndefinedNonLazy (0x0)
14*84cc39c3SJez Ng# CHECK-NEXT:     Flags [ (0x0)
15*84cc39c3SJez Ng# CHECK-NEXT:     ]
16*84cc39c3SJez Ng# CHECK-NEXT:     Value: 0x0
17*84cc39c3SJez Ng# CHECK-NEXT:   }
18*84cc39c3SJez Ng# CHECK-NEXT:   Symbol {
19*84cc39c3SJez Ng# CHECK-NEXT:     Name: /Volumes/Sandbox/test.o (20)
20*84cc39c3SJez Ng# CHECK-NEXT:     Type: SymDebugTable (0x66)
21*84cc39c3SJez Ng# CHECK-NEXT:     Section:  (0x3)
22*84cc39c3SJez Ng# CHECK-NEXT:     RefType: ReferenceFlagUndefinedLazy (0x1)
23*84cc39c3SJez Ng# CHECK-NEXT:     Flags [ (0x0)
24*84cc39c3SJez Ng# CHECK-NEXT:     ]
25*84cc39c3SJez Ng# CHECK-NEXT:     Value: 0x5F72D5E2
26*84cc39c3SJez Ng# CHECK-NEXT:   }
27*84cc39c3SJez Ng# CHECK-NEXT:   Symbol {
28*84cc39c3SJez Ng# CHECK-NEXT:     Name:  (1)
29*84cc39c3SJez Ng# CHECK-NEXT:     Type: SymDebugTable (0x2E)
30*84cc39c3SJez Ng# CHECK-NEXT:     Section:  (0x1)
31*84cc39c3SJez Ng# CHECK-NEXT:     RefType: UndefinedNonLazy (0x0)
32*84cc39c3SJez Ng# CHECK-NEXT:     Flags [ (0x0)
33*84cc39c3SJez Ng# CHECK-NEXT:     ]
34*84cc39c3SJez Ng# CHECK-NEXT:     Value: 0x100000FA0
35*84cc39c3SJez Ng# CHECK-NEXT:   }
36*84cc39c3SJez Ng# CHECK-NEXT:   Symbol {
37*84cc39c3SJez Ng# CHECK-NEXT:     Name: _foo (44)
38*84cc39c3SJez Ng# CHECK-NEXT:     Type: SymDebugTable (0x24)
39*84cc39c3SJez Ng# CHECK-NEXT:     Section:  (0x1)
40*84cc39c3SJez Ng# CHECK-NEXT:     RefType: UndefinedNonLazy (0x0)
41*84cc39c3SJez Ng# CHECK-NEXT:     Flags [ (0x0)
42*84cc39c3SJez Ng# CHECK-NEXT:     ]
43*84cc39c3SJez Ng# CHECK-NEXT:     Value: 0x100000FA0
44*84cc39c3SJez Ng# CHECK-NEXT:   }
45*84cc39c3SJez Ng# CHECK-NEXT:   Symbol {
46*84cc39c3SJez Ng# CHECK-NEXT:     Name:  (1)
47*84cc39c3SJez Ng# CHECK-NEXT:     Type: SymDebugTable (0x4E)
48*84cc39c3SJez Ng# CHECK-NEXT:     Section:  (0x1)
49*84cc39c3SJez Ng# CHECK-NEXT:     RefType: UndefinedNonLazy (0x0)
50*84cc39c3SJez Ng# CHECK-NEXT:     Flags [ (0x0)
51*84cc39c3SJez Ng# CHECK-NEXT:     ]
52*84cc39c3SJez Ng# CHECK-NEXT:     Value: 0xF
53*84cc39c3SJez Ng# CHECK-NEXT:   }
54*84cc39c3SJez Ng# CHECK-NEXT: ]
55*84cc39c3SJez Ng
56*84cc39c3SJez Ng--- !mach-o
57*84cc39c3SJez NgFileHeader:
58*84cc39c3SJez Ng  magic:           0xFEEDFACF
59*84cc39c3SJez Ng  cputype:         0x01000007
60*84cc39c3SJez Ng  cpusubtype:      0x00000003
61*84cc39c3SJez Ng  filetype:        0x00000002
62*84cc39c3SJez Ng  ncmds:           2
63*84cc39c3SJez Ng  sizeofcmds:      744
64*84cc39c3SJez Ng  flags:           0x00200085
65*84cc39c3SJez Ng  reserved:        0x00000000
66*84cc39c3SJez NgLoadCommands:
67*84cc39c3SJez Ng  - cmd:             LC_SEGMENT_64
68*84cc39c3SJez Ng    cmdsize:         232
69*84cc39c3SJez Ng    segname:         __TEXT
70*84cc39c3SJez Ng    vmaddr:          4294967296
71*84cc39c3SJez Ng    vmsize:          4096
72*84cc39c3SJez Ng    fileoff:         0
73*84cc39c3SJez Ng    filesize:        4096
74*84cc39c3SJez Ng    maxprot:         5
75*84cc39c3SJez Ng    initprot:        5
76*84cc39c3SJez Ng    nsects:          1
77*84cc39c3SJez Ng    flags:           0
78*84cc39c3SJez Ng    Sections:
79*84cc39c3SJez Ng      - sectname:        __text
80*84cc39c3SJez Ng        segname:         __TEXT
81*84cc39c3SJez Ng        addr:            0x00000000
82*84cc39c3SJez Ng        size:            0
83*84cc39c3SJez Ng        offset:          0x00000000
84*84cc39c3SJez Ng        align:           4
85*84cc39c3SJez Ng        reloff:          0x00000000
86*84cc39c3SJez Ng        nreloc:          0
87*84cc39c3SJez Ng        flags:           0x80000400
88*84cc39c3SJez Ng        reserved1:       0x00000000
89*84cc39c3SJez Ng        reserved2:       0x00000000
90*84cc39c3SJez Ng        reserved3:       0x00000000
91*84cc39c3SJez Ng  - cmd:             LC_SYMTAB
92*84cc39c3SJez Ng    cmdsize:         24
93*84cc39c3SJez Ng    symoff:          4152
94*84cc39c3SJez Ng    nsyms:           5
95*84cc39c3SJez Ng    stroff:          4328
96*84cc39c3SJez Ng    strsize:         49
97*84cc39c3SJez NgLinkEditData:
98*84cc39c3SJez Ng  NameList:
99*84cc39c3SJez Ng    - n_strx:          2
100*84cc39c3SJez Ng      n_type:          0x64 ## N_SO
101*84cc39c3SJez Ng      n_sect:          0
102*84cc39c3SJez Ng      n_desc:          0
103*84cc39c3SJez Ng      n_value:         0
104*84cc39c3SJez Ng    - n_strx:          20
105*84cc39c3SJez Ng      n_type:          0x66 ## N_OSO
106*84cc39c3SJez Ng      n_sect:          3
107*84cc39c3SJez Ng      n_desc:          1
108*84cc39c3SJez Ng      n_value:         1601361378
109*84cc39c3SJez Ng    - n_strx:          1
110*84cc39c3SJez Ng      n_type:          0x2E ## N_BNSYM
111*84cc39c3SJez Ng      n_sect:          1
112*84cc39c3SJez Ng      n_desc:          0
113*84cc39c3SJez Ng      n_value:         4294971296
114*84cc39c3SJez Ng    - n_strx:          44
115*84cc39c3SJez Ng      n_type:          0x24 ## N_FUN
116*84cc39c3SJez Ng      n_sect:          1
117*84cc39c3SJez Ng      n_desc:          0
118*84cc39c3SJez Ng      n_value:         4294971296
119*84cc39c3SJez Ng    - n_strx:          1
120*84cc39c3SJez Ng      n_type:          0x4E ## N_ENSYM
121*84cc39c3SJez Ng      n_sect:          1
122*84cc39c3SJez Ng      n_desc:          0
123*84cc39c3SJez Ng      n_value:         15
124*84cc39c3SJez Ng  StringTable:
125*84cc39c3SJez Ng    - ' '
126*84cc39c3SJez Ng    - '/Volumes/Sandbox/'
127*84cc39c3SJez Ng    - '/Volumes/Sandbox/test.o'
128*84cc39c3SJez Ng    - _foo
129*84cc39c3SJez Ng...
130