llvm-project/lld/test/mach-o/parse-tentative-defs.yaml

89 lines
2.7 KiB
YAML

# RUN: ld64.lld -arch x86_64 -r -print_atoms %s -o %t | FileCheck %s
#
# Test parsing of tentative definitions, including size, scope, and alignment.
#
#
# int tent4;
# long tent8;
# __attribute__((visibility("hidden"))) int tentHidden;
# __attribute__((aligned(16))) int tent4_16;
# __attribute__((aligned(32))) long tent64_32[8];
#
--- !mach-o
arch: x86_64
file-type: MH_OBJECT
flags: [ MH_SUBSECTIONS_VIA_SYMBOLS ]
has-UUID: false
OS: unknown
sections:
- segment: __TEXT
section: __tex
type: S_REGULAR
attributes: [ S_ATTR_PURE_INSTRUCTIONS ]
address: 0x0000000000000000
undefined-symbols:
- name: _tent4
type: N_UNDF
scope: [ N_EXT ]
desc: 0x0200
value: 0x0000000000000004
- name: _tent4_16
type: N_UNDF
scope: [ N_EXT ]
desc: 0x0400
value: 0x0000000000000004
- name: _tent64_32
type: N_UNDF
scope: [ N_EXT ]
desc: 0x0500
value: 0x0000000000000040
- name: _tent8
type: N_UNDF
scope: [ N_EXT ]
desc: 0x0300
value: 0x0000000000000008
- name: _tentHidden
type: N_UNDF
scope: [ N_EXT, N_PEXT ]
desc: 0x0200
value: 0x0000000000000004
...
# CHECK: defined-atoms:
# CHECK: name: _tent4
# CHECK: scope: global
# CHECK: type: zero-fill
# CHECK: size: 4
# CHECK: merge: as-tentative
# CHECK: alignment: 4
# CHECK: name: _tent4_16
# CHECK: scope: global
# CHECK: type: zero-fill
# CHECK: size: 4
# CHECK: merge: as-tentative
# CHECK: alignment: 16
# CHECK: name: _tent64_32
# CHECK: scope: global
# CHECK: type: zero-fill
# CHECK: size: 64
# CHECK: merge: as-tentative
# CHECK: alignment: 32
# CHECK: name: _tent8
# CHECK: scope: global
# CHECK: type: zero-fill
# CHECK: size: 8
# CHECK: merge: as-tentative
# CHECK: alignment: 8
# CHECK: name: _tentHidden
# CHECK: scope: hidden
# CHECK: type: zero-fill
# CHECK: size: 4
# CHECK: merge: as-tentative
# CHECK: alignment: 4