Skip to content

Commit dcbf505

Browse files
committed
add no_dead_strip to OBJC_CLASS_REFERENCES_ and OBJC_SELECTOR_REFERENCES_
1 parent 6685ac5 commit dcbf505

File tree

3 files changed

+8
-8
lines changed

3 files changed

+8
-8
lines changed

compiler/rustc_codegen_llvm/src/consts.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -611,7 +611,7 @@ impl<'ll> CodegenCx<'ll, '_> {
611611
set_global_alignment(self, g, self.tcx.data_layout.pointer_align().abi);
612612
llvm::set_initializer(g, llval);
613613
llvm::set_linkage(g, llvm::Linkage::PrivateLinkage);
614-
llvm::set_section(g, c"__OBJC,__cls_refs,literal_pointers");
614+
llvm::set_section(g, c"__OBJC,__cls_refs,literal_pointers,no_dead_strip");
615615
self.add_compiler_used_global(g);
616616
g
617617
} else {
@@ -630,7 +630,7 @@ impl<'ll> CodegenCx<'ll, '_> {
630630
set_global_alignment(self, g, self.tcx.data_layout.pointer_align().abi);
631631
llvm::set_initializer(g, llval);
632632
llvm::set_linkage(g, llvm::Linkage::InternalLinkage);
633-
llvm::set_section(g, c"__DATA,__objc_classrefs,regular");
633+
llvm::set_section(g, c"__DATA,__objc_classrefs,regular,no_dead_strip");
634634
self.add_compiler_used_global(g);
635635
g
636636
};
@@ -682,10 +682,10 @@ impl<'ll> CodegenCx<'ll, '_> {
682682
llvm::set_initializer(selref_g, selref_llval);
683683
if is_x86_32_macos {
684684
llvm::set_linkage(selref_g, llvm::Linkage::PrivateLinkage);
685-
llvm::set_section(selref_g, c"__OBJC,__message_refs,literal_pointers");
685+
llvm::set_section(selref_g, c"__OBJC,__message_refs,literal_pointers,no_dead_strip");
686686
} else {
687687
llvm::set_linkage(selref_g, llvm::Linkage::InternalLinkage);
688-
llvm::set_section(selref_g, c"__DATA,__objc_selrefs,literal_pointers");
688+
llvm::set_section(selref_g, c"__DATA,__objc_selrefs,literal_pointers,no_dead_strip");
689689
}
690690
self.add_compiler_used_global(selref_g);
691691

tests/codegen-llvm/darwin-objc-32bit-x86-macos.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,10 +32,10 @@ pub fn get_selector() -> *mut () {
3232
// CHECK: %struct._objc_module = type { i32, i32, ptr, ptr }
3333

3434
// CHECK: @OBJC_CLASS_NAME_.{{[0-9]+}} = private unnamed_addr constant [8 x i8] c"MyClass\00", section "__TEXT,__cstring,cstring_literals", align 1
35-
// CHECK: @OBJC_CLASS_REFERENCES_.{{[0-9]+}} = private global ptr @OBJC_CLASS_NAME_.{{[0-9]+}}, section "__OBJC,__cls_refs,literal_pointers", align 4
35+
// CHECK: @OBJC_CLASS_REFERENCES_.{{[0-9]+}} = private global ptr @OBJC_CLASS_NAME_.{{[0-9]+}}, section "__OBJC,__cls_refs,literal_pointers,no_dead_strip", align 4
3636

3737
// CHECK: @OBJC_METH_VAR_NAME_.{{[0-9]+}} = private unnamed_addr constant [9 x i8] c"myMethod\00", section "__TEXT,__cstring,cstring_literals", align 1
38-
// CHECK: @OBJC_SELECTOR_REFERENCES_.{{[0-9]+}} = private global ptr @OBJC_METH_VAR_NAME_.{{[0-9]+}}, section "__OBJC,__message_refs,literal_pointers", align 4
38+
// CHECK: @OBJC_SELECTOR_REFERENCES_.{{[0-9]+}} = private global ptr @OBJC_METH_VAR_NAME_.{{[0-9]+}}, section "__OBJC,__message_refs,literal_pointers,no_dead_strip", align 4
3939

4040
// CHECK: @OBJC_CLASS_NAME_.{{[0-9]+}} = private unnamed_addr constant [1 x i8] zeroinitializer, section "__TEXT,__cstring,cstring_literals", align 1
4141
// CHECK: @OBJC_MODULES = private global %struct._objc_module { i32 7, i32 16, ptr @OBJC_CLASS_NAME_.{{[0-9]+}}, ptr null }, section "__OBJC,__module_info,regular,no_dead_strip", align 4

tests/codegen-llvm/darwin-objc.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ pub fn get_selector() -> *mut () {
4949

5050
// CHECK: %struct._class_t = type { ptr, ptr, ptr, ptr, ptr }
5151
// CHECK: @"OBJC_CLASS_$_MyClass" = external global %struct._class_t
52-
// CHECK: @"OBJC_CLASSLIST_REFERENCES_$_.{{[0-9]+}}" = internal global ptr @"OBJC_CLASS_$_MyClass", section "__DATA,__objc_classrefs,regular",
52+
// CHECK: @"OBJC_CLASSLIST_REFERENCES_$_.{{[0-9]+}}" = internal global ptr @"OBJC_CLASS_$_MyClass", section "__DATA,__objc_classrefs,regular,no_dead_strip",
5353
// x86_64_macos-SAME: align 8
5454
// aarch64_macos-SAME: align 8
5555
// i386_ios-SAME: align 4
@@ -59,7 +59,7 @@ pub fn get_selector() -> *mut () {
5959
// aarch64_ios_sim-SAME: align 8
6060

6161
// CHECK: @OBJC_METH_VAR_NAME_.{{[0-9]+}} = private unnamed_addr constant [9 x i8] c"myMethod\00", section "__TEXT,__objc_methname,cstring_literals", align 1
62-
// CHECK: @OBJC_SELECTOR_REFERENCES_.{{[0-9]+}} = internal global ptr @OBJC_METH_VAR_NAME_.{{[0-9]+}}, section "__DATA,__objc_selrefs,literal_pointers",
62+
// CHECK: @OBJC_SELECTOR_REFERENCES_.{{[0-9]+}} = internal global ptr @OBJC_METH_VAR_NAME_.{{[0-9]+}}, section "__DATA,__objc_selrefs,literal_pointers,no_dead_strip",
6363
// x86_64_macos-SAME: align 8
6464
// aarch64_macos-SAME: align 8
6565
// i386_ios-SAME: align 4

0 commit comments

Comments
 (0)