cstring-sections.yaml 2.34 KB
# RUN: ld64.lld -arch x86_64 -r  %s -o %t -print_atoms | FileCheck %s
#
# Test -keep_private_externs in -r mode.
#

--- !mach-o
arch:            x86_64
file-type:       MH_OBJECT
flags:           [ MH_SUBSECTIONS_VIA_SYMBOLS ]
sections:
  - segment:         __TEXT
    section:         __objc_methname
    type:            S_CSTRING_LITERALS
    attributes:      [  ]
    address:         0x0000000000000000
    content:         [ 0x61, 0x62, 0x63, 0x00, 0x64, 0x65, 0x66, 0x00 ]
  - segment:         __TEXT
    section:         __objc_classname
    type:            S_CSTRING_LITERALS
    attributes:      [  ]
    address:         0x0000000000000006
    content:         [ 0x61, 0x62, 0x63, 0x00, 0x67, 0x68, 0x69, 0x00 ]
  - segment:         __TEXT
    section:         __cstring
    type:            S_CSTRING_LITERALS
    attributes:      [  ]
    address:         0x000000000000000A
    content:         [ 0x61, 0x62, 0x63, 0x00, 0x6A, 0x6B, 0x6C, 0x00 ]


...

# CHECK: defined-atoms:
# CHECK:   - scope:           hidden
# CHECK:     type:            c-string
# CHECK:     content:         [ 61, 62, 63, 00 ]
# CHECK:     merge:           by-content
# CHECK:     section-choice:  custom-required
# CHECK:     section-name:    '__TEXT/__objc_methname'
# CHECK:   - scope:           hidden
# CHECK:     type:            c-string
# CHECK:     content:         [ 64, 65, 66, 00 ]
# CHECK:     merge:           by-content
# CHECK:     section-choice:  custom-required
# CHECK:     section-name:    '__TEXT/__objc_methname'
# CHECK:   - scope:           hidden
# CHECK:     type:            c-string
# CHECK:     content:         [ 61, 62, 63, 00 ]
# CHECK:     merge:           by-content
# CHECK:     section-choice:  custom-required
# CHECK:     section-name:    '__TEXT/__objc_classname'
# CHECK:   - scope:           hidden
# CHECK:     type:            c-string
# CHECK:     content:         [ 67, 68, 69, 00 ]
# CHECK:     merge:           by-content
# CHECK:     section-choice:  custom-required
# CHECK:     section-name:    '__TEXT/__objc_classname'
# CHECK:   - scope:           hidden
# CHECK:     type:            c-string
# CHECK:     content:         [ 61, 62, 63, 00 ]
# CHECK:     merge:           by-content
# CHECK:   - scope:           hidden
# CHECK:     type:            c-string
# CHECK:     content:         [ 6A, 6B, 6C, 00 ]
# CHECK:     merge:           by-content