# RUN: ld64.lld -arch x86_64 -r %s -o %t # RUN: ld64.lld -arch x86_64 -r %t -print_atoms -o %t2 | FileCheck %s # # Test parsing of mach-o functions. # --- !mach-o arch: x86_64 file-type: MH_OBJECT flags: [ MH_SUBSECTIONS_VIA_SYMBOLS ] has-UUID: false OS: unknown sections: - segment: __TEXT section: __text type: S_REGULAR attributes: [ S_ATTR_PURE_INSTRUCTIONS, S_ATTR_SOME_INSTRUCTIONS ] alignment: 4 address: 0x0000000000000000 content: [ 0xCC, 0xC3, 0x90, 0xC3, 0x90, 0x90, 0xC3, 0x90, 0x90, 0x90, 0xC3, 0x90, 0x90, 0x90, 0x90, 0xC3, 0xCC, 0x31, 0xC0, 0xC3 ] local-symbols: - name: _myStatic type: N_SECT sect: 1 value: 0x000000000000000B global-symbols: - name: _myGlobal type: N_SECT scope: [ N_EXT ] sect: 1 value: 0x0000000000000001 - name: _myGlobalWeak type: N_SECT scope: [ N_EXT ] sect: 1 desc: [ N_WEAK_DEF ] value: 0x0000000000000002 - name: _myHidden type: N_SECT scope: [ N_EXT, N_PEXT ] sect: 1 value: 0x0000000000000004 - name: _myHiddenWeak type: N_SECT scope: [ N_EXT, N_PEXT ] sect: 1 desc: [ N_WEAK_DEF ] value: 0x0000000000000007 - name: _myStripNot type: N_SECT scope: [ N_EXT ] sect: 1 desc: [ N_NO_DEAD_STRIP ] value: 0x0000000000000010 - name: _myResolver type: N_SECT scope: [ N_EXT ] sect: 1 desc: [ N_SYMBOL_RESOLVER ] value: 0x0000000000000011 ... # CHECK-NOT: name: # CHECK: content: [ CC ] # CHECK: name: _myGlobal # CHECK: scope: global # CHECK: content: [ C3 ] # CHECK: name: _myGlobalWeak # CHECK: scope: global # CHECK: content: [ 90, C3 ] # CHECK: merge: as-weak # CHECK: name: _myHidden # CHECK: scope: hidden # CHECK: content: [ 90, 90, C3 ] # CHECK: name: _myHiddenWeak # CHECK: scope: hidden # CHECK: content: [ 90, 90, 90, C3 ] # CHECK: merge: as-weak # CHECK: name: _myStatic # CHECK-NOT: scope: global # CHECK-NOT: scope: hidden # CHECK: content: [ 90, 90, 90, 90, C3 ] # CHECK: name: _myStripNot # CHECK: scope: global # CHECK: content: [ CC ] # CHECK: dead-strip: never # CHECK: name: _myResolver # CHECK: scope: global # CHECK: type: resolver # CHECK: content: [ 31, C0, C3 ]