# RUN: ld64.lld -arch armv7 %s -r -print_atoms -o %t | FileCheck %s # # Test that assembly written without .subsections_via_symbols is parsed so # that atoms are non-dead-strip and there is a layout-after references # chaining atoms together. # --- !mach-o arch: armv7 file-type: MH_OBJECT flags: [ ] has-UUID: false OS: unknown sections: - segment: __TEXT section: __text type: S_REGULAR attributes: [ S_ATTR_PURE_INSTRUCTIONS, S_ATTR_SOME_INSTRUCTIONS ] alignment: 2 address: 0x0000000000000000 content: [ 0x04, 0x10, 0x9F, 0xE5, 0x04, 0x20, 0x9F, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1, 0x78, 0x56, 0x34, 0x12, 0x21, 0x43, 0x65, 0x87 ] local-symbols: - name: constants1 type: N_SECT sect: 1 value: 0x000000000000000C - name: constants2 type: N_SECT sect: 1 value: 0x0000000000000010 global-symbols: - name: _foo type: N_SECT scope: [ N_EXT ] sect: 1 value: 0x0000000000000000 ... # CHECK:defined-atoms: # CHECK: - name: _foo # CHECK: scope: global # CHECK: content: [ 04, 10, 9F, E5, 04, 20, 9F, E5, 1E, FF, 2F, E1 ] # CHECK: dead-strip: never # CHECK: references: # CHECK: - kind: layout-after # CHECK: offset: 0 # CHECK: target: constants1 # CHECK: - name: constants1 # CHECK: content: [ 78, 56, 34, 12 ] # CHECK: dead-strip: never # CHECK: references: # CHECK: - kind: layout-after # CHECK: offset: 0 # CHECK: target: constants2 # CHECK: - name: constants2 # CHECK: content: [ 21, 43, 65, 87 ] # CHECK: dead-strip: never