Skip to content

Commit 9b86a48

Browse files
committed
add darwin-no-objc test
1 parent 7299ac0 commit 9b86a48

File tree

3 files changed

+58
-0
lines changed

3 files changed

+58
-0
lines changed
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
// Test that we don't generate Objective-C definitions or image info unnecessarily.
2+
3+
//@ add-core-stubs
4+
//@ revisions: i686_apple_darwin
5+
//@ [i686_apple_darwin] compile-flags: --target i686-apple-darwin
6+
//@ [i686_apple_darwin] needs-llvm-components: x86
7+
//@ revisions: x86_64_macos
8+
//@ [x86_64_macos] compile-flags: --target x86_64-apple-darwin
9+
//@ [x86_64_macos] needs-llvm-components: x86
10+
//@ revisions: aarch64_macos
11+
//@ [aarch64_macos] compile-flags: --target aarch64-apple-darwin
12+
//@ [aarch64_macos] needs-llvm-components: aarch64
13+
//@ revisions: i386_ios
14+
//@ [i386_ios] compile-flags: --target i386-apple-ios
15+
//@ [i386_ios] needs-llvm-components: x86
16+
//@ revisions: x86_64_ios
17+
//@ [x86_64_ios] compile-flags: --target x86_64-apple-ios
18+
//@ [x86_64_ios] needs-llvm-components: x86
19+
//@ revisions: armv7s_ios
20+
//@ [armv7s_ios] compile-flags: --target armv7s-apple-ios
21+
//@ [armv7s_ios] needs-llvm-components: arm
22+
//@ revisions: aarch64_ios
23+
//@ [aarch64_ios] compile-flags: --target aarch64-apple-ios
24+
//@ [aarch64_ios] needs-llvm-components: aarch64
25+
//@ revisions: aarch64_ios_sim
26+
//@ [aarch64_ios_sim] compile-flags: --target aarch64-apple-ios-sim
27+
//@ [aarch64_ios_sim] needs-llvm-components: aarch64
28+
29+
#![crate_type = "lib"]
30+
#![feature(no_core, lang_items)]
31+
#![no_core]
32+
33+
extern crate minicore;
34+
use minicore::*;
35+
36+
#[no_mangle]
37+
pub fn foo() {}
38+
39+
// CHECK-NOT: %struct._class_t
40+
// CHECK-NOT: %struct._objc_module
41+
// CHECK-NOT: @OBJC_CLASS_NAME_
42+
// CHECK-NOT: @"OBJC_CLASS_$_{{[0-9A-Z_a-z]+}}"
43+
// CHECK-NOT: @"OBJC_CLASSLIST_REFERENCES_$_.{{[0-9]+}}"
44+
// CHECK-NOT: @OBJC_METH_VAR_NAME_
45+
// CHECK-NOT: @OBJC_SELECTOR_REFERENCES_
46+
// CHECK-NOT: @OBJC_MODULES
47+
48+
// CHECK-NOT: !"Objective-C Version"
49+
// CHECK-NOT: !"Objective-C Image Info Version"
50+
// CHECK-NOT: !"Objective-C Image Info Section"
51+
// CHECK-NOT: !"Objective-C Is Simulated"
52+
// CHECK-NOT: !"Objective-C Class Properties"

tests/codegen-llvm/darwin-objc-abi-v2.rs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -131,6 +131,9 @@ pub fn get_other_selector() -> *mut () {
131131
// aarch64_ios-SAME: align 8
132132
// aarch64_ios_sim-SAME: align 8
133133

134+
// CHECK-NOT: @OBJC_CLASS_NAME_
135+
// CHECK-NOT: @OBJC_MODULES
136+
134137
// CHECK: @get_class_again = unnamed_addr alias ptr (), ptr @get_class
135138
// CHECK: @get_selector_again = unnamed_addr alias ptr (), ptr @get_selector
136139

tests/codegen-llvm/darwin-objc-inline-cross-crate.rs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,9 @@ pub fn get_selector() -> objc::SEL {
2929
// 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
3030
// CHECK: @OBJC_SELECTOR_REFERENCES_.{{[0-9]+}} = internal externally_initialized global ptr @OBJC_METH_VAR_NAME_.{{[0-9]+}}, section "__DATA,__objc_selrefs,literal_pointers,no_dead_strip", align 8
3131

32+
// CHECK-NOT: @OBJC_CLASS_NAME_
33+
// CHECK-NOT: @OBJC_MODULES
34+
3235
// CHECK: load ptr, ptr @"OBJC_CLASSLIST_REFERENCES_$_.{{[0-9]+}}", align 8
3336
// CHECK: load ptr, ptr @OBJC_SELECTOR_REFERENCES_.{{[0-9]+}}, align 8
3437

0 commit comments

Comments
 (0)