# RUN: yaml2obj %s -o %t # RUN: not llvm-objcopy --remove-section __DATA,C %t /dev/null 2>&1 | FileCheck %s # CHECK: symbol '_a' defined in section with index '2' cannot be removed because it is referenced by a relocation in section '__TEXT,__text' ## The binary used in this test was built as follows: ## main.c: ## __attribute__((section("__DATA,C"))) int a = 2; ## int f() { return a; } ## build command: ## clang -fno-exceptions -fno-unwind-tables -c main.c -o main.o --- !mach-o FileHeader: magic: 0xFEEDFACF cputype: 0x01000007 cpusubtype: 0x00000003 filetype: 0x00000001 ncmds: 4 sizeofcmds: 360 flags: 0x00002000 reserved: 0x00000000 LoadCommands: - cmd: LC_SEGMENT_64 cmdsize: 232 segname: '' vmaddr: 0 vmsize: 16 fileoff: 392 filesize: 16 maxprot: 7 initprot: 7 nsects: 2 flags: 0 Sections: - sectname: __text segname: __TEXT addr: 0x0000000000000000 size: 12 offset: 0x00000188 align: 4 reloff: 0x00000198 nreloc: 1 flags: 0x80000400 reserved1: 0x00000000 reserved2: 0x00000000 reserved3: 0x00000000 content: 554889E58B05000000005DC3 relocations: - address: 0x00000006 symbolnum: 0 pcrel: true length: 2 extern: true type: 1 scattered: false value: 0 - sectname: C segname: __DATA addr: 0x000000000000000C size: 4 offset: 0x00000194 align: 2 reloff: 0x00000000 nreloc: 0 flags: 0x00000000 reserved1: 0x00000000 reserved2: 0x00000000 reserved3: 0x00000000 content: '02000000' - cmd: LC_BUILD_VERSION cmdsize: 24 platform: 1 minos: 658944 sdk: 658944 ntools: 0 - cmd: LC_SYMTAB cmdsize: 24 symoff: 416 nsyms: 2 stroff: 448 strsize: 8 - cmd: LC_DYSYMTAB cmdsize: 80 ilocalsym: 0 nlocalsym: 0 iextdefsym: 0 nextdefsym: 2 iundefsym: 2 nundefsym: 0 tocoff: 0 ntoc: 0 modtaboff: 0 nmodtab: 0 extrefsymoff: 0 nextrefsyms: 0 indirectsymoff: 0 nindirectsyms: 0 extreloff: 0 nextrel: 0 locreloff: 0 nlocrel: 0 LinkEditData: NameList: - n_strx: 4 n_type: 0x0F n_sect: 2 n_desc: 0 n_value: 12 - n_strx: 1 n_type: 0x0F n_sect: 1 n_desc: 0 n_value: 0 StringTable: - '' - _f - _a - '' ...