Skip to content

Conversation

Zalathar
Copy link
Contributor

@Zalathar Zalathar commented Sep 12, 2025

Successful merges:

r? @ghost
@rustbot modify labels: rollup

Create a similar rollup

folkertdev and others added 30 commits September 3, 2025 00:19
This fixes ``` error: unused import: `str` --> library/std/src/sys/pal/hermit/os.rs:6:22 | 6 | use crate::{fmt, io, str}; | ^^^ | = note: `-D unused-imports` implied by `-D warnings` = help: to override `-D warnings` add `#[allow(unused_imports)]` ``` This was caused by 845311a.
Signed-off-by: Connor Tsui <connor.tsui20@gmail.com>
Co-authored-by: Ralf Jung <post@ralfj.de>
These "you are using $RUSTC_VERSION" help messages were removed in rust-lang#142943, but rust-lang#142681 started before that and merged later, so its normalization is vestigial.
match clang's `va_arg` assembly on arm targets tracking issue: rust-lang#44930 For this example ```rust #![feature(c_variadic)] #[unsafe(no_mangle)] unsafe extern "C" fn variadic(a: f64, mut args: ...) -> f64 { let b = args.arg::<f64>(); let c = args.arg::<f64>(); a + b + c } ``` We currently generate (via llvm): ```asm variadic: sub sp, sp, rust-lang#12 stmib sp, {r2, r3} vmov d0, r0, r1 add r0, sp, rust-lang#4 vldr d1, [sp, rust-lang#4] add r0, r0, rust-lang#15 bic r0, r0, rust-lang#7 vadd.f64 d0, d0, d1 add r1, r0, rust-lang#8 str r1, [sp] vldr d1, [r0] vadd.f64 d0, d0, d1 vmov r0, r1, d0 add sp, sp, rust-lang#12 bx lr ``` LLVM is not doing a good job. In fact, it's well-known that LLVM's implementation of `va_arg` is kind of bad, and we implement it ourselves (based on clang) for many targets already. For arm, our own `emit_ptr_va_arg` saves 3 instructions. Next, it turns out it's important for LLVM to explicitly start and end the lifetime of the `va_list`. In rust-lang#146059 I already end the lifetime, but when looking at this again, I noticed that it is important to also start it, see https://godbolt.org/z/EGqvKTTsK: failing to explicitly start the lifetime uses an extra register. So, the combination of `emit_ptr_va_arg` with starting/ending the lifetime makes rustc emit exactly the instructions that clang generates:: ```asm variadic: sub sp, sp, rust-lang#12 stmib sp, {r2, r3} vmov d16, r0, r1 vldr d17, [sp, rust-lang#4] vadd.f64 d16, d16, d17 vldr d17, [sp, rust-lang#12] vadd.f64 d16, d16, d17 vmov r0, r1, d16 add sp, sp, rust-lang#12 bx lr ``` The arguments to `emit_ptr_va_arg` are based on [the clang implementation](https://github.com/llvm/llvm-project/blob/03dc2a41f3d9a500e47b513de5c5008c06860d65/clang/lib/CodeGen/Targets/ARM.cpp#L798-L844). r? `@workingjubilee` (I can re-roll if your queue is too full, but you do seem like the right person here) try-job: armhf-gnu
…,madsmtm,tmandry initial implementation of the darwin_objc unstable feature Tracking issue: rust-lang#145496 This feature makes it possible to reference Objective-C classes and selectors using the same ABI used by native Objective-C on Apple/Darwin platforms. Without it, Rust code interacting with Objective-C must resort to loading classes and selectors using costly string-based lookups at runtime. With it, these references can be loaded efficiently at dynamic load time. r? ``@tmandry`` try-job: `*apple*`
test: remove an outdated normalization for rustc versions These "you are using $RUSTC_VERSION" help messages were removed in rust-lang#142943, but rust-lang#142681 started before that and merged later, so its normalization is vestigial.
@rustbot rustbot added A-attributes Area: Attributes (`#[…]`, `#![…]`) A-LLVM Area: Code generation parts specific to LLVM. Both correctness bugs and optimization-related issues. A-rustdoc-search Area: Rustdoc's search feature A-tidy Area: The tidy tool O-apple Operating system: Apple (macOS, iOS, tvOS, visionOS, watchOS) O-hermit Operating System: Hermit S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-bootstrap Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap) T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. T-libs Relevant to the library team, which will review and decide on the PR/issue. T-rustdoc Relevant to the rustdoc team, which will review and decide on the PR/issue. T-rustdoc-frontend Relevant to the rustdoc-frontend team, which will review and decide on the web UI/UX output. rollup A PR which is a rollup labels Sep 12, 2025
@Zalathar
Copy link
Contributor Author

@bors r+ rollup=never p=5

@bors
Copy link
Collaborator

bors commented Sep 12, 2025

📌 Commit 111079b has been approved by Zalathar

It is now in the queue for this repository.

@bors bors added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Sep 12, 2025
@bors
Copy link
Collaborator

bors commented Sep 12, 2025

⌛ Testing commit 111079b with merge 987ea16...

bors added a commit that referenced this pull request Sep 12, 2025
Rollup of 16 pull requests Successful merges: - #144549 (match clang's `va_arg` assembly on arm targets) - #145660 (initial implementation of the darwin_objc unstable feature) - #145895 (thread parking: fix docs and examples) - #146308 (support integer literals in `${concat()}`) - #146323 (check before test for hardware capabilites in bits 32~63 of usize) - #146332 (tidy: make behavior of extra-checks more uniform) - #146374 (Update `browser-ui-test` version to `0.22.2`) - #146413 (Improve suggestion in case a bare URL is surrounded by brackets) - #146426 (Bump miow to 0.60.1) - #146432 (Implement `Socket::take_error` for Hermit) - #146433 (rwlock tests: fix miri macos test regression) - #146435 (Change the default value of `gcc.download-ci-gcc` to `true`) - #146439 (fix cfg for poison test macro) - #146448 ([rustdoc] Correctly handle literal search on paths) - #146449 (Fix `libgccjit` symlink when we build GCC locally) - #146455 (test: remove an outdated normalization for rustc versions) r? `@ghost` `@rustbot` modify labels: rollup
@rust-log-analyzer
Copy link
Collaborator

The job x86_64-gnu-nopt failed! Check out the build log: (web) (plain enhanced) (plain)

Click to see the possible cause of the failure (guessed by this bot)
 ---- [codegen] tests/codegen-llvm/darwin-objc-abi-v1.rs#i686_apple_darwin stdout ---- ------FileCheck stdout------------------------------ ------FileCheck stderr------------------------------ /checkout/tests/codegen-llvm/darwin-objc-abi-v1.rs:91:11: error: CHECK: expected string not found in input // CHECK: @get_class_again = unnamed_addr alias ptr (), ptr @get_class ^ /checkout/obj/build/x86_64-unknown-linux-gnu/test/codegen-llvm/darwin-objc-abi-v1.i686_apple_darwin/darwin-objc-abi-v1.ll:17:168: note: scanning from here @OBJC_MODULES = private global %struct._objc_module { i32 7, i32 16, ptr @OBJC_CLASS_NAME_.8, ptr null }, section "__OBJC,__module_info,regular,no_dead_strip", align 4 ^ /checkout/obj/build/x86_64-unknown-linux-gnu/test/codegen-llvm/darwin-objc-abi-v1.i686_apple_darwin/darwin-objc-abi-v1.ll:28:12: note: possible intended match here define ptr @get_class_again() unnamed_addr #0 { ^ Input file: /checkout/obj/build/x86_64-unknown-linux-gnu/test/codegen-llvm/darwin-objc-abi-v1.i686_apple_darwin/darwin-objc-abi-v1.ll Check file: /checkout/tests/codegen-llvm/darwin-objc-abi-v1.rs -dump-input=help explains the following input dump. Input was: <<<<<< 1: ; ModuleID = 'darwin_objc_abi_v1.e20e708e61252899-cgu.0' 2: source_filename = "darwin_objc_abi_v1.e20e708e61252899-cgu.0" 3: target datalayout = "e-m:o-p:32:32-p270:32:32-p271:32:32-p272:64:64-i128:128-f64:32:64-f80:128-n8:16:32-S128" 4: target triple = "i686-apple-macosx10.12.0" 5: 6: %struct._objc_module = type { i32, i32, ptr, ptr } 7: 8: @OBJC_CLASS_NAME_.0 = private unnamed_addr constant [8 x i8] c"MyClass\00", section "__TEXT,__cstring,cstring_literals", align 1 9: @OBJC_CLASS_REFERENCES_.1 = private global ptr @OBJC_CLASS_NAME_.0, section "__OBJC,__cls_refs,literal_pointers,no_dead_strip", align 4 10: @OBJC_METH_VAR_NAME_.2 = private unnamed_addr constant [9 x i8] c"myMethod\00", section "__TEXT,__cstring,cstring_literals", align 1 11: @OBJC_SELECTOR_REFERENCES_.3 = private externally_initialized global ptr @OBJC_METH_VAR_NAME_.2, section "__OBJC,__message_refs,literal_pointers,no_dead_strip", align 4 12: @OBJC_CLASS_NAME_.4 = private unnamed_addr constant [11 x i8] c"OtherClass\00", section "__TEXT,__cstring,cstring_literals", align 1 13: @OBJC_CLASS_REFERENCES_.5 = private global ptr @OBJC_CLASS_NAME_.4, section "__OBJC,__cls_refs,literal_pointers,no_dead_strip", align 4 14: @OBJC_METH_VAR_NAME_.6 = private unnamed_addr constant [12 x i8] c"otherMethod\00", section "__TEXT,__cstring,cstring_literals", align 1 15: @OBJC_SELECTOR_REFERENCES_.7 = private externally_initialized global ptr @OBJC_METH_VAR_NAME_.6, section "__OBJC,__message_refs,literal_pointers,no_dead_strip", align 4 16: @OBJC_CLASS_NAME_.8 = private unnamed_addr constant [1 x i8] zeroinitializer, section "__TEXT,__cstring,cstring_literals", align 1 17: @OBJC_MODULES = private global %struct._objc_module { i32 7, i32 16, ptr @OBJC_CLASS_NAME_.8, ptr null }, section "__OBJC,__module_info,regular,no_dead_strip", align 4 check:91'0 X error: no match found 18: @llvm.compiler.used = appending global [10 x ptr] [ptr @OBJC_CLASS_NAME_.0, ptr @OBJC_CLASS_REFERENCES_.1, ptr @OBJC_METH_VAR_NAME_.2, ptr @OBJC_SELECTOR_REFERENCES_.3, ptr @OBJC_CLASS_NAME_.4, ptr @OBJC_CLASS_REFERENCES_.5, ptr @OBJC_METH_VAR_NAME_.6, ptr @OBJC_SELECTOR_REFERENCES_.7, ptr @OBJC_CLASS_NAME_.8, ptr @OBJC_MODULES], section "llvm.metadata" check:91'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 19: check:91'0 ~ 20: ; Function Attrs: nounwind uwtable check:91'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 21: define ptr @get_class() unnamed_addr #0 { check:91'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 22: start: check:91'0 ~~~~~~~ 23: %_0 = load ptr, ptr @OBJC_CLASS_REFERENCES_.1, align 4 check:91'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 24: ret ptr %_0 check:91'0 ~~~~~~~~~~~~~ 25: } check:91'0 ~~ 26: check:91'0 ~ 27: ; Function Attrs: nounwind uwtable check:91'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 28: define ptr @get_class_again() unnamed_addr #0 { check:91'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ check:91'1 ? possible intended match 29: start: check:91'0 ~~~~~~~ 30: %_0 = load ptr, ptr @OBJC_CLASS_REFERENCES_.1, align 4 check:91'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 31: ret ptr %_0 check:91'0 ~~~~~~~~~~~~~ 32: } check:91'0 ~~ 33: check:91'0 ~ 34: ; Function Attrs: nounwind uwtable check:91'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 35: define ptr @get_selector() unnamed_addr #0 { check:91'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 36: start: check:91'0 ~~~~~~~ 37: %_0 = load ptr, ptr @OBJC_SELECTOR_REFERENCES_.3, align 4 check:91'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 38: ret ptr %_0 check:91'0 ~~~~~~~~~~~~~ 39: } check:91'0 ~~ 40: check:91'0 ~ 41: ; Function Attrs: nounwind uwtable check:91'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 42: define ptr @get_selector_again() unnamed_addr #0 { check:91'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 43: start: check:91'0 ~~~~~~~ 44: %_0 = load ptr, ptr @OBJC_SELECTOR_REFERENCES_.3, align 4 check:91'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 45: ret ptr %_0 check:91'0 ~~~~~~~~~~~~~ 46: } check:91'0 ~~ 47: check:91'0 ~ 48: ; Function Attrs: nounwind uwtable check:91'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 49: define ptr @get_other_class() unnamed_addr #0 { check:91'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 50: start: check:91'0 ~~~~~~~ 51: %_0 = load ptr, ptr @OBJC_CLASS_REFERENCES_.5, align 4 check:91'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 52: ret ptr %_0 check:91'0 ~~~~~~~~~~~~~ 53: } check:91'0 ~~ 54: check:91'0 ~ 55: ; Function Attrs: nounwind uwtable check:91'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 56: define ptr @get_other_selector() unnamed_addr #0 { check:91'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 57: start: check:91'0 ~~~~~~~ 58: %_0 = load ptr, ptr @OBJC_SELECTOR_REFERENCES_.7, align 4 check:91'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 59: ret ptr %_0 check:91'0 ~~~~~~~~~~~~~ 60: } check:91'0 ~~ 61: check:91'0 ~ 62: attributes #0 = { nounwind uwtable "frame-pointer"="all" "probe-stack"="inline-asm" "target-cpu"="penryn" } check:91'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 63: check:91'0 ~ 64: !llvm.module.flags = !{!0, !1, !2, !3, !4} check:91'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 65: !llvm.ident = !{!5} check:91'0 ~~~~~~~~~~~~~~~~~~~~ 66: check:91'0 ~ 67: !0 = !{i32 8, !"PIC Level", i32 2} check:91'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 68: !1 = !{i32 1, !"Objective-C Version", i32 1} check:91'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 69: !2 = !{i32 1, !"Objective-C Image Info Version", i32 0} check:91'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 70: !3 = !{i32 1, !"Objective-C Image Info Section", !"__OBJC,__image_info,regular"} check:91'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 71: !4 = !{i32 1, !"Objective-C Class Properties", i32 64} check:91'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 72: !5 = !{!"rustc version 1.91.0-nightly (987ea163e 2025-09-12)"} check:91'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ >>>>>> ------------------------------------------ error in revision `i686_apple_darwin`: verification with 'FileCheck' failed status: exit status: 1 command: "/checkout/obj/build/x86_64-unknown-linux-gnu/ci-llvm/bin/FileCheck" "--input-file" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/codegen-llvm/darwin-objc-abi-v1.i686_apple_darwin/darwin-objc-abi-v1.ll" "/checkout/tests/codegen-llvm/darwin-objc-abi-v1.rs" "--check-prefix=CHECK" "--check-prefix" "i686_apple_darwin" "--allow-unused-prefixes" "--dump-input-context" "100" stdout: none --- stderr ------------------------------- /checkout/tests/codegen-llvm/darwin-objc-abi-v1.rs:91:11: error: CHECK: expected string not found in input // CHECK: @get_class_again = unnamed_addr alias ptr (), ptr @get_class ^ /checkout/obj/build/x86_64-unknown-linux-gnu/test/codegen-llvm/darwin-objc-abi-v1.i686_apple_darwin/darwin-objc-abi-v1.ll:17:168: note: scanning from here @OBJC_MODULES = private global %struct._objc_module { i32 7, i32 16, ptr @OBJC_CLASS_NAME_.8, ptr null }, section "__OBJC,__module_info,regular,no_dead_strip", align 4 ^ /checkout/obj/build/x86_64-unknown-linux-gnu/test/codegen-llvm/darwin-objc-abi-v1.i686_apple_darwin/darwin-objc-abi-v1.ll:28:12: note: possible intended match here define ptr @get_class_again() unnamed_addr #0 { ^ Input file: /checkout/obj/build/x86_64-unknown-linux-gnu/test/codegen-llvm/darwin-objc-abi-v1.i686_apple_darwin/darwin-objc-abi-v1.ll Check file: /checkout/tests/codegen-llvm/darwin-objc-abi-v1.rs -dump-input=help explains the following input dump. Input was: <<<<<< 1: ; ModuleID = 'darwin_objc_abi_v1.e20e708e61252899-cgu.0' 2: source_filename = "darwin_objc_abi_v1.e20e708e61252899-cgu.0" 3: target datalayout = "e-m:o-p:32:32-p270:32:32-p271:32:32-p272:64:64-i128:128-f64:32:64-f80:128-n8:16:32-S128" 4: target triple = "i686-apple-macosx10.12.0" 5: 6: %struct._objc_module = type { i32, i32, ptr, ptr } 7: 8: @OBJC_CLASS_NAME_.0 = private unnamed_addr constant [8 x i8] c"MyClass\00", section "__TEXT,__cstring,cstring_literals", align 1 9: @OBJC_CLASS_REFERENCES_.1 = private global ptr @OBJC_CLASS_NAME_.0, section "__OBJC,__cls_refs,literal_pointers,no_dead_strip", align 4 10: @OBJC_METH_VAR_NAME_.2 = private unnamed_addr constant [9 x i8] c"myMethod\00", section "__TEXT,__cstring,cstring_literals", align 1 11: @OBJC_SELECTOR_REFERENCES_.3 = private externally_initialized global ptr @OBJC_METH_VAR_NAME_.2, section "__OBJC,__message_refs,literal_pointers,no_dead_strip", align 4 12: @OBJC_CLASS_NAME_.4 = private unnamed_addr constant [11 x i8] c"OtherClass\00", section "__TEXT,__cstring,cstring_literals", align 1 13: @OBJC_CLASS_REFERENCES_.5 = private global ptr @OBJC_CLASS_NAME_.4, section "__OBJC,__cls_refs,literal_pointers,no_dead_strip", align 4 14: @OBJC_METH_VAR_NAME_.6 = private unnamed_addr constant [12 x i8] c"otherMethod\00", section "__TEXT,__cstring,cstring_literals", align 1 15: @OBJC_SELECTOR_REFERENCES_.7 = private externally_initialized global ptr @OBJC_METH_VAR_NAME_.6, section "__OBJC,__message_refs,literal_pointers,no_dead_strip", align 4 16: @OBJC_CLASS_NAME_.8 = private unnamed_addr constant [1 x i8] zeroinitializer, section "__TEXT,__cstring,cstring_literals", align 1 17: @OBJC_MODULES = private global %struct._objc_module { i32 7, i32 16, ptr @OBJC_CLASS_NAME_.8, ptr null }, section "__OBJC,__module_info,regular,no_dead_strip", align 4 check:91'0 X error: no match found 18: @llvm.compiler.used = appending global [10 x ptr] [ptr @OBJC_CLASS_NAME_.0, ptr @OBJC_CLASS_REFERENCES_.1, ptr @OBJC_METH_VAR_NAME_.2, ptr @OBJC_SELECTOR_REFERENCES_.3, ptr @OBJC_CLASS_NAME_.4, ptr @OBJC_CLASS_REFERENCES_.5, ptr @OBJC_METH_VAR_NAME_.6, ptr @OBJC_SELECTOR_REFERENCES_.7, ptr @OBJC_CLASS_NAME_.8, ptr @OBJC_MODULES], section "llvm.metadata" check:91'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 19: check:91'0 ~ 20: ; Function Attrs: nounwind uwtable check:91'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 21: define ptr @get_class() unnamed_addr #0 { check:91'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 22: start: check:91'0 ~~~~~~~ 23: %_0 = load ptr, ptr @OBJC_CLASS_REFERENCES_.1, align 4 check:91'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 24: ret ptr %_0 check:91'0 ~~~~~~~~~~~~~ 25: } check:91'0 ~~ 26: check:91'0 ~ 27: ; Function Attrs: nounwind uwtable check:91'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 28: define ptr @get_class_again() unnamed_addr #0 { check:91'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ check:91'1 ? possible intended match 29: start: check:91'0 ~~~~~~~ 30: %_0 = load ptr, ptr @OBJC_CLASS_REFERENCES_.1, align 4 check:91'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 31: ret ptr %_0 check:91'0 ~~~~~~~~~~~~~ 32: } check:91'0 ~~ 33: check:91'0 ~ 34: ; Function Attrs: nounwind uwtable check:91'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 35: define ptr @get_selector() unnamed_addr #0 { check:91'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 36: start: check:91'0 ~~~~~~~ 37: %_0 = load ptr, ptr @OBJC_SELECTOR_REFERENCES_.3, align 4 check:91'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 38: ret ptr %_0 check:91'0 ~~~~~~~~~~~~~ 39: } check:91'0 ~~ 40: check:91'0 ~ 41: ; Function Attrs: nounwind uwtable check:91'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 42: define ptr @get_selector_again() unnamed_addr #0 { check:91'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 43: start: check:91'0 ~~~~~~~ 44: %_0 = load ptr, ptr @OBJC_SELECTOR_REFERENCES_.3, align 4 check:91'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 45: ret ptr %_0 check:91'0 ~~~~~~~~~~~~~ 46: } check:91'0 ~~ 47: check:91'0 ~ 48: ; Function Attrs: nounwind uwtable check:91'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 49: define ptr @get_other_class() unnamed_addr #0 { check:91'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 50: start: check:91'0 ~~~~~~~ 51: %_0 = load ptr, ptr @OBJC_CLASS_REFERENCES_.5, align 4 check:91'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 52: ret ptr %_0 check:91'0 ~~~~~~~~~~~~~ 53: } check:91'0 ~~ 54: check:91'0 ~ 55: ; Function Attrs: nounwind uwtable check:91'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 56: define ptr @get_other_selector() unnamed_addr #0 { check:91'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 57: start: check:91'0 ~~~~~~~ 58: %_0 = load ptr, ptr @OBJC_SELECTOR_REFERENCES_.7, align 4 check:91'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 59: ret ptr %_0 check:91'0 ~~~~~~~~~~~~~ 60: } check:91'0 ~~ 61: check:91'0 ~ 62: attributes #0 = { nounwind uwtable "frame-pointer"="all" "probe-stack"="inline-asm" "target-cpu"="penryn" } check:91'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 63: check:91'0 ~ 64: !llvm.module.flags = !{!0, !1, !2, !3, !4} check:91'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 65: !llvm.ident = !{!5} check:91'0 ~~~~~~~~~~~~~~~~~~~~ 66: check:91'0 ~ 67: !0 = !{i32 8, !"PIC Level", i32 2} check:91'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 68: !1 = !{i32 1, !"Objective-C Version", i32 1} check:91'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 69: !2 = !{i32 1, !"Objective-C Image Info Version", i32 0} check:91'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 70: !3 = !{i32 1, !"Objective-C Image Info Section", !"__OBJC,__image_info,regular"} check:91'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 71: !4 = !{i32 1, !"Objective-C Class Properties", i32 64} check:91'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 72: !5 = !{!"rustc version 1.91.0-nightly (987ea163e 2025-09-12)"} check:91'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ >>>>>> ------------------------------------------ ---- [codegen] tests/codegen-llvm/darwin-objc-abi-v1.rs#i686_apple_darwin stdout end ---- ---- [codegen] tests/codegen-llvm/darwin-objc-abi-v2.rs#aarch64_ios stdout ---- ------FileCheck stdout------------------------------ ------FileCheck stderr------------------------------ /checkout/tests/codegen-llvm/darwin-objc-abi-v2.rs:137:11: error: CHECK: expected string not found in input // CHECK: @get_class_again = unnamed_addr alias ptr (), ptr @get_class ^ /checkout/obj/build/x86_64-unknown-linux-gnu/test/codegen-llvm/darwin-objc-abi-v2.aarch64_ios/darwin-objc-abi-v2.ll:15:170: note: scanning from here @OBJC_SELECTOR_REFERENCES_.5 = internal externally_initialized global ptr @OBJC_METH_VAR_NAME_.4, section "__DATA,__objc_selrefs,literal_pointers,no_dead_strip", align 8 ^ /checkout/obj/build/x86_64-unknown-linux-gnu/test/codegen-llvm/darwin-objc-abi-v2.aarch64_ios/darwin-objc-abi-v2.ll:26:12: note: possible intended match here define ptr @get_class_again() unnamed_addr #0 { ^ Input file: /checkout/obj/build/x86_64-unknown-linux-gnu/test/codegen-llvm/darwin-objc-abi-v2.aarch64_ios/darwin-objc-abi-v2.ll Check file: /checkout/tests/codegen-llvm/darwin-objc-abi-v2.rs -dump-input=help explains the following input dump. Input was: <<<<<< 1: ; ModuleID = 'darwin_objc_abi_v2.244f91e520c50d75-cgu.0' 2: source_filename = "darwin_objc_abi_v2.244f91e520c50d75-cgu.0" 3: target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-n32:64-S128-Fn32" 4: target triple = "arm64-apple-ios10.0.0" 5: 6: %struct._class_t = type { ptr, ptr, ptr, ptr, ptr } 7: 8: @"OBJC_CLASS_$_MyClass" = external global %struct._class_t 9: @"OBJC_CLASSLIST_REFERENCES_$_.0" = internal global ptr @"OBJC_CLASS_$_MyClass", section "__DATA,__objc_classrefs,regular,no_dead_strip", align 8 10: @OBJC_METH_VAR_NAME_.1 = private unnamed_addr constant [9 x i8] c"myMethod\00", section "__TEXT,__objc_methname,cstring_literals", align 1 11: @OBJC_SELECTOR_REFERENCES_.2 = internal externally_initialized global ptr @OBJC_METH_VAR_NAME_.1, section "__DATA,__objc_selrefs,literal_pointers,no_dead_strip", align 8 12: @"OBJC_CLASS_$_OtherClass" = external global %struct._class_t 13: @"OBJC_CLASSLIST_REFERENCES_$_.3" = internal global ptr @"OBJC_CLASS_$_OtherClass", section "__DATA,__objc_classrefs,regular,no_dead_strip", align 8 14: @OBJC_METH_VAR_NAME_.4 = private unnamed_addr constant [12 x i8] c"otherMethod\00", section "__TEXT,__objc_methname,cstring_literals", align 1 15: @OBJC_SELECTOR_REFERENCES_.5 = internal externally_initialized global ptr @OBJC_METH_VAR_NAME_.4, section "__DATA,__objc_selrefs,literal_pointers,no_dead_strip", align 8 check:137'0 X error: no match found 16: @llvm.compiler.used = appending global [6 x ptr] [ptr @"OBJC_CLASSLIST_REFERENCES_$_.0", ptr @OBJC_METH_VAR_NAME_.1, ptr @OBJC_SELECTOR_REFERENCES_.2, ptr @"OBJC_CLASSLIST_REFERENCES_$_.3", ptr @OBJC_METH_VAR_NAME_.4, ptr @OBJC_SELECTOR_REFERENCES_.5], section "llvm.metadata" check:137'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 17: check:137'0 ~ 18: ; Function Attrs: nounwind uwtable check:137'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 19: define ptr @get_class() unnamed_addr #0 { check:137'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 20: start: check:137'0 ~~~~~~~ 21: %_0 = load ptr, ptr @"OBJC_CLASSLIST_REFERENCES_$_.0", align 8 check:137'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 22: ret ptr %_0 check:137'0 ~~~~~~~~~~~~~ 23: } check:137'0 ~~ 24: check:137'0 ~ 25: ; Function Attrs: nounwind uwtable check:137'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 26: define ptr @get_class_again() unnamed_addr #0 { check:137'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ check:137'1 ? possible intended match 27: start: check:137'0 ~~~~~~~ 28: %_0 = load ptr, ptr @"OBJC_CLASSLIST_REFERENCES_$_.0", align 8 check:137'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 29: ret ptr %_0 check:137'0 ~~~~~~~~~~~~~ 30: } check:137'0 ~~ 31: check:137'0 ~ 32: ; Function Attrs: nounwind uwtable check:137'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 33: define ptr @get_selector() unnamed_addr #0 { check:137'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 34: start: check:137'0 ~~~~~~~ 35: %_0 = load ptr, ptr @OBJC_SELECTOR_REFERENCES_.2, align 8 check:137'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 36: ret ptr %_0 check:137'0 ~~~~~~~~~~~~~ 37: } check:137'0 ~~ 38: check:137'0 ~ 39: ; Function Attrs: nounwind uwtable check:137'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 40: define ptr @get_selector_again() unnamed_addr #0 { check:137'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 41: start: check:137'0 ~~~~~~~ 42: %_0 = load ptr, ptr @OBJC_SELECTOR_REFERENCES_.2, align 8 check:137'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 43: ret ptr %_0 check:137'0 ~~~~~~~~~~~~~ 44: } check:137'0 ~~ 45: check:137'0 ~ 46: ; Function Attrs: nounwind uwtable check:137'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 47: define ptr @get_other_class() unnamed_addr #0 { check:137'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 48: start: check:137'0 ~~~~~~~ 49: %_0 = load ptr, ptr @"OBJC_CLASSLIST_REFERENCES_$_.3", align 8 check:137'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 50: ret ptr %_0 check:137'0 ~~~~~~~~~~~~~ 51: } check:137'0 ~~ 52: check:137'0 ~ 53: ; Function Attrs: nounwind uwtable check:137'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 54: define ptr @get_other_selector() unnamed_addr #0 { check:137'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 55: start: check:137'0 ~~~~~~~ 56: %_0 = load ptr, ptr @OBJC_SELECTOR_REFERENCES_.5, align 8 check:137'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 57: ret ptr %_0 check:137'0 ~~~~~~~~~~~~~ 58: } check:137'0 ~~ 59: check:137'0 ~ 60: attributes #0 = { nounwind uwtable "frame-pointer"="non-leaf" "probe-stack"="inline-asm" "target-cpu"="apple-a7" "target-features"="+neon,+fp-armv8,+apple-a7" } check:137'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 61: check:137'0 ~ 62: !llvm.module.flags = !{!0, !1, !2, !3, !4} check:137'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 63: !llvm.ident = !{!5} check:137'0 ~~~~~~~~~~~~~~~~~~~~ 64: check:137'0 ~ 65: !0 = !{i32 8, !"PIC Level", i32 2} check:137'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 66: !1 = !{i32 1, !"Objective-C Version", i32 2} check:137'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 67: !2 = !{i32 1, !"Objective-C Image Info Version", i32 0} check:137'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 68: !3 = !{i32 1, !"Objective-C Image Info Section", !"__DATA,__objc_imageinfo,regular,no_dead_strip"} check:137'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 69: !4 = !{i32 1, !"Objective-C Class Properties", i32 64} check:137'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 70: !5 = !{!"rustc version 1.91.0-nightly (987ea163e 2025-09-12)"} check:137'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ >>>>>> ------------------------------------------ error in revision `aarch64_ios`: verification with 'FileCheck' failed status: exit status: 1 command: "/checkout/obj/build/x86_64-unknown-linux-gnu/ci-llvm/bin/FileCheck" "--input-file" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/codegen-llvm/darwin-objc-abi-v2.aarch64_ios/darwin-objc-abi-v2.ll" "/checkout/tests/codegen-llvm/darwin-objc-abi-v2.rs" "--check-prefix=CHECK" "--check-prefix" "aarch64_ios" "--allow-unused-prefixes" "--dump-input-context" "100" stdout: none --- stderr ------------------------------- /checkout/tests/codegen-llvm/darwin-objc-abi-v2.rs:137:11: error: CHECK: expected string not found in input // CHECK: @get_class_again = unnamed_addr alias ptr (), ptr @get_class ^ /checkout/obj/build/x86_64-unknown-linux-gnu/test/codegen-llvm/darwin-objc-abi-v2.aarch64_ios/darwin-objc-abi-v2.ll:15:170: note: scanning from here @OBJC_SELECTOR_REFERENCES_.5 = internal externally_initialized global ptr @OBJC_METH_VAR_NAME_.4, section "__DATA,__objc_selrefs,literal_pointers,no_dead_strip", align 8 ^ /checkout/obj/build/x86_64-unknown-linux-gnu/test/codegen-llvm/darwin-objc-abi-v2.aarch64_ios/darwin-objc-abi-v2.ll:26:12: note: possible intended match here define ptr @get_class_again() unnamed_addr #0 { ^ Input file: /checkout/obj/build/x86_64-unknown-linux-gnu/test/codegen-llvm/darwin-objc-abi-v2.aarch64_ios/darwin-objc-abi-v2.ll Check file: /checkout/tests/codegen-llvm/darwin-objc-abi-v2.rs -dump-input=help explains the following input dump. Input was: <<<<<< 1: ; ModuleID = 'darwin_objc_abi_v2.244f91e520c50d75-cgu.0' 2: source_filename = "darwin_objc_abi_v2.244f91e520c50d75-cgu.0" 3: target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-n32:64-S128-Fn32" 4: target triple = "arm64-apple-ios10.0.0" 5: 6: %struct._class_t = type { ptr, ptr, ptr, ptr, ptr } 7: 8: @"OBJC_CLASS_$_MyClass" = external global %struct._class_t 9: @"OBJC_CLASSLIST_REFERENCES_$_.0" = internal global ptr @"OBJC_CLASS_$_MyClass", section "__DATA,__objc_classrefs,regular,no_dead_strip", align 8 10: @OBJC_METH_VAR_NAME_.1 = private unnamed_addr constant [9 x i8] c"myMethod\00", section "__TEXT,__objc_methname,cstring_literals", align 1 11: @OBJC_SELECTOR_REFERENCES_.2 = internal externally_initialized global ptr @OBJC_METH_VAR_NAME_.1, section "__DATA,__objc_selrefs,literal_pointers,no_dead_strip", align 8 12: @"OBJC_CLASS_$_OtherClass" = external global %struct._class_t 13: @"OBJC_CLASSLIST_REFERENCES_$_.3" = internal global ptr @"OBJC_CLASS_$_OtherClass", section "__DATA,__objc_classrefs,regular,no_dead_strip", align 8 14: @OBJC_METH_VAR_NAME_.4 = private unnamed_addr constant [12 x i8] c"otherMethod\00", section "__TEXT,__objc_methname,cstring_literals", align 1 15: @OBJC_SELECTOR_REFERENCES_.5 = internal externally_initialized global ptr @OBJC_METH_VAR_NAME_.4, section "__DATA,__objc_selrefs,literal_pointers,no_dead_strip", align 8 check:137'0 X error: no match found 
@bors
Copy link
Collaborator

bors commented Sep 12, 2025

💔 Test failed - checks-actions

@bors bors added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. and removed S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. labels Sep 12, 2025
@lqd
Copy link
Member

lqd commented Sep 12, 2025

Failure is from #145660

@Zalathar Zalathar closed this Sep 12, 2025
@rustbot rustbot removed the S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. label Sep 12, 2025
@Zalathar Zalathar deleted the rollup-qhce3w5 branch September 12, 2025 13:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-attributes Area: Attributes (`#[…]`, `#![…]`) A-LLVM Area: Code generation parts specific to LLVM. Both correctness bugs and optimization-related issues. A-rustdoc-search Area: Rustdoc's search feature A-tidy Area: The tidy tool O-apple Operating system: Apple (macOS, iOS, tvOS, visionOS, watchOS) O-hermit Operating System: Hermit rollup A PR which is a rollup T-bootstrap Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap) T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. T-libs Relevant to the library team, which will review and decide on the PR/issue. T-rustdoc Relevant to the rustdoc team, which will review and decide on the PR/issue. T-rustdoc-frontend Relevant to the rustdoc-frontend team, which will review and decide on the web UI/UX output.