## Verify that llvm-readobj can dump files containing stabs symbols, ## particularly symbols of type N_OSO which have repurposed the n_sect field ## to store a non-section-index value. # RUN: yaml2obj %s -o %t # RUN: llvm-readobj --syms %t | FileCheck %s # CHECK: Symbols [ # CHECK-NEXT: Symbol { # CHECK-NEXT: Name: /Volumes/Sandbox/ (2) # CHECK-NEXT: Type: SymDebugTable (0x64) # CHECK-NEXT: Section: (0x0) # CHECK-NEXT: RefType: UndefinedNonLazy (0x0) # CHECK-NEXT: Flags [ (0x0) # CHECK-NEXT: ] # CHECK-NEXT: Value: 0x0 # CHECK-NEXT: } # CHECK-NEXT: Symbol { # CHECK-NEXT: Name: /Volumes/Sandbox/test.o (20) # CHECK-NEXT: Type: SymDebugTable (0x66) # CHECK-NEXT: Section: (0x3) # CHECK-NEXT: RefType: ReferenceFlagUndefinedLazy (0x1) # CHECK-NEXT: Flags [ (0x0) # CHECK-NEXT: ] # CHECK-NEXT: Value: 0x5F72D5E2 # CHECK-NEXT: } # CHECK-NEXT: Symbol { # CHECK-NEXT: Name: (1) # CHECK-NEXT: Type: SymDebugTable (0x2E) # CHECK-NEXT: Section: (0x1) # CHECK-NEXT: RefType: UndefinedNonLazy (0x0) # CHECK-NEXT: Flags [ (0x0) # CHECK-NEXT: ] # CHECK-NEXT: Value: 0x100000FA0 # CHECK-NEXT: } # CHECK-NEXT: Symbol { # CHECK-NEXT: Name: _foo (44) # CHECK-NEXT: Type: SymDebugTable (0x24) # CHECK-NEXT: Section: (0x1) # CHECK-NEXT: RefType: UndefinedNonLazy (0x0) # CHECK-NEXT: Flags [ (0x0) # CHECK-NEXT: ] # CHECK-NEXT: Value: 0x100000FA0 # CHECK-NEXT: } # CHECK-NEXT: Symbol { # CHECK-NEXT: Name: (1) # CHECK-NEXT: Type: SymDebugTable (0x4E) # CHECK-NEXT: Section: (0x1) # CHECK-NEXT: RefType: UndefinedNonLazy (0x0) # CHECK-NEXT: Flags [ (0x0) # CHECK-NEXT: ] # CHECK-NEXT: Value: 0xF # CHECK-NEXT: } # CHECK-NEXT: ] --- !mach-o FileHeader: magic: 0xFEEDFACF cputype: 0x01000007 cpusubtype: 0x00000003 filetype: 0x00000002 ncmds: 2 sizeofcmds: 744 flags: 0x00200085 reserved: 0x00000000 LoadCommands: - cmd: LC_SEGMENT_64 cmdsize: 232 segname: __TEXT vmaddr: 4294967296 vmsize: 4096 fileoff: 0 filesize: 4096 maxprot: 5 initprot: 5 nsects: 1 flags: 0 Sections: - sectname: __text segname: __TEXT addr: 0x00000000 size: 0 offset: 0x00000000 align: 4 reloff: 0x00000000 nreloc: 0 flags: 0x80000400 reserved1: 0x00000000 reserved2: 0x00000000 reserved3: 0x00000000 - cmd: LC_SYMTAB cmdsize: 24 symoff: 4152 nsyms: 5 stroff: 4328 strsize: 49 LinkEditData: NameList: - n_strx: 2 n_type: 0x64 ## N_SO n_sect: 0 n_desc: 0 n_value: 0 - n_strx: 20 n_type: 0x66 ## N_OSO n_sect: 3 n_desc: 1 n_value: 1601361378 - n_strx: 1 n_type: 0x2E ## N_BNSYM n_sect: 1 n_desc: 0 n_value: 4294971296 - n_strx: 44 n_type: 0x24 ## N_FUN n_sect: 1 n_desc: 0 n_value: 4294971296 - n_strx: 1 n_type: 0x4E ## N_ENSYM n_sect: 1 n_desc: 0 n_value: 15 StringTable: - ' ' - '/Volumes/Sandbox/' - '/Volumes/Sandbox/test.o' - _foo ...