Skip to content

Rollup of 14 pull requests - #161056

Closed
jhpratt wants to merge 112 commits into
rust-lang:mainfrom
jhpratt:rollup-nMRbCFi
Closed

Rollup of 14 pull requests#161056
jhpratt wants to merge 112 commits into
rust-lang:mainfrom
jhpratt:rollup-nMRbCFi

Conversation

@jhpratt

@jhpratt jhpratt commented Aug 13, 2026

Copy link
Copy Markdown
Member

Successful merges:

r? @ghost

Create a similar rollup

jyn514 and others added 30 commits April 17, 2026 11:07
Add LLM guidance, based on the new rl/r policy
This updates the rust-version file to 969b803.
@rustbot rustbot added A-rustc-dev-guide Area: rustc-dev-guide A-rustdoc-json Area: Rustdoc JSON backend A-test-infra-minicore Area: `minicore` test auxiliary and `//@ add-core-stubs` A-testsuite Area: The testsuite used to check the correctness of rustc A-tidy Area: The tidy tool 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-infra Relevant to the infrastructure 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. labels Aug 13, 2026
@jhpratt

jhpratt commented Aug 13, 2026

Copy link
Copy Markdown
Member Author

@bors r+ p=5

@rust-bors

rust-bors Bot commented Aug 13, 2026

Copy link
Copy Markdown
Contributor

📌 Commit 90f1d54 has been approved by jhpratt

It is now in the queue for this repository.

@rust-bors rust-bors Bot 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 Aug 13, 2026
@rust-bors

This comment has been minimized.

rust-bors Bot pushed a commit that referenced this pull request Aug 13, 2026
Rollup of 14 pull requests

Successful merges:

 - #158918 (x86_64-win: Enable f128 on LLVM 23+)
 - #160288 (rustdoc: use anonymous constant for primitives/keywords/attribute docs)
 - #160440 (Couple of misc improvements to the unwind infrastructure)
 - #160441 (PowerPC inline ASM: Fix scalar floats being in the wrong vector lane on little endian)
 - #160896 (tidy: Update Python version requirements to 3.11)
 - #160972 (std: map ERROR_NEGATIVE_SEEK to ErrorKind::InvalidInput on Windows)
 - #161040 (Optimize CStr backing slice bounds checks)
 - #158885 (Add `core::num::Complex`)
 - #160928 (check `mut`-restriction when tuple constructor is used as a value)
 - #161002 (disallow `#[cold]` on `extern "custom"` functions)
 - #161016 (Fix invalid suggestion from try unlabled block)
 - #161020 (io: Use `NonNull` for all `Custom` API related to `Box`, update documentation for `Custom`)
 - #161044 (rustc-dev-guide subtree update)
 - #161046 (Enable unrolling feature of bors)
@rust-log-analyzer

Copy link
Copy Markdown
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/complex-abi.rs#I686 stdout ----
------FileCheck stdout------------------------------

------FileCheck stderr------------------------------
/checkout/tests/codegen-llvm/complex-abi.rs:111:11: error: I686: expected string not found in input
 // I686: define{{.*}} <2 x half> @cplx_f16(ptr {{.*}} byval([4 x i8]) {{.*}})
          ^
/checkout/obj/build/x86_64-unknown-linux-gnu/test/codegen-llvm/complex-abi.I686/complex-abi.ll:1:1: note: scanning from here
; ModuleID = 'complex_abi.8dfb70534ff3b38e-cgu.0'
^
/checkout/obj/build/x86_64-unknown-linux-gnu/test/codegen-llvm/complex-abi.I686/complex-abi.ll:7:1: note: possible intended match here
define <2 x half> @cplx_f16(ptr byval([4 x i8]) align 4 %x) unnamed_addr #0 !guid !3 {
^

Input file: /checkout/obj/build/x86_64-unknown-linux-gnu/test/codegen-llvm/complex-abi.I686/complex-abi.ll
Check file: /checkout/tests/codegen-llvm/complex-abi.rs

-dump-input=help explains the following input dump.

Input was:
<<<<<<
             1: ; ModuleID = 'complex_abi.8dfb70534ff3b38e-cgu.0' 
check:111'0    {                                                    search range start (exclusive)
check:111'1                                                         error: no match found in search range
             2: source_filename = "complex_abi.8dfb70534ff3b38e-cgu.0" 
             3: target datalayout = "e-m:e-p:32:32-p270:32:32-p271:32:32-p272:64:64-i128:128-f64:32:64-f80:32-n8:16:32-S128" 
             4: target triple = "i686-unknown-linux-gnu" 
             5:  
             6: ; Function Attrs: nounwind uwtable 
             7: define <2 x half> @cplx_f16(ptr byval([4 x i8]) align 4 %x) unnamed_addr #0 !guid !3 { 
check:111'2     ?                                                                                        possible intended match
             8: start: 
             9:  %_0 = alloca [4 x i8], align 2 
            10:  %0 = load half, ptr %x, align 2 
            11:  %1 = getelementptr inbounds i8, ptr %x, i32 2 
            12:  %2 = load half, ptr %1, align 2 
            13:  store half %0, ptr %_0, align 2 
            14:  %3 = getelementptr inbounds i8, ptr %_0, i32 2 
            15:  store half %2, ptr %3, align 2 
            16:  %4 = load <2 x half>, ptr %_0, align 2 
            17:  ret <2 x half> %4 
            18: } 
            19:  
            20: ; Function Attrs: nounwind uwtable 
            21: define i64 @cplx_f32(ptr byval([8 x i8]) align 4 %x) unnamed_addr #0 !guid !4 { 
            22: start: 
            23:  %_0 = alloca [8 x i8], align 4 
            24:  %0 = load float, ptr %x, align 4 
            25:  %1 = getelementptr inbounds i8, ptr %x, i32 4 
            26:  %2 = load float, ptr %1, align 4 
            27:  store float %0, ptr %_0, align 4 
            28:  %3 = getelementptr inbounds i8, ptr %_0, i32 4 
            29:  store float %2, ptr %3, align 4 
            30:  %4 = load i64, ptr %_0, align 4 
            31:  ret i64 %4 
            32: } 
            33:  
            34: ; Function Attrs: nounwind uwtable 
            35: define void @cplx_f64(ptr sret([16 x i8]) align 4 %_0, ptr byval([16 x i8]) align 4 %x) unnamed_addr #0 !guid !5 { 
            36: start: 
            37:  %0 = load double, ptr %x, align 4 
            38:  %1 = getelementptr inbounds i8, ptr %x, i32 8 
            39:  %2 = load double, ptr %1, align 4 
            40:  store double %0, ptr %_0, align 4 
            41:  %3 = getelementptr inbounds i8, ptr %_0, i32 8 
            42:  store double %2, ptr %3, align 4 
            43:  ret void 
            44: } 
            45:  
            46: ; Function Attrs: nounwind uwtable 
            47: define void @cplx_f128(ptr sret([32 x i8]) align 16 %_0, ptr byval([32 x i8]) align 4 %0) unnamed_addr #0 !guid !6 { 
            48: start: 
            49:  %x = alloca [32 x i8], align 16 
            50:  call void @llvm.memcpy.p0.p0.i32(ptr align 16 %x, ptr align 4 %0, i32 32, i1 false) 
            51:  %1 = load fp128, ptr %x, align 16 
            52:  %2 = getelementptr inbounds i8, ptr %x, i32 16 
            53:  %3 = load fp128, ptr %2, align 16 
            54:  store fp128 %1, ptr %_0, align 16 
            55:  %4 = getelementptr inbounds i8, ptr %_0, i32 16 
            56:  store fp128 %3, ptr %4, align 16 
            57:  ret void 
            58: } 
            59:  
            60: ; Function Attrs: nounwind uwtable 
            61: define i16 @cplx_i8(ptr byval([2 x i8]) align 4 %x) unnamed_addr #0 !guid !7 { 
            62: start: 
            63:  %_0 = alloca [2 x i8], align 1 
            64:  %0 = load i8, ptr %x, align 1 
            65:  %1 = getelementptr inbounds i8, ptr %x, i32 1 
            66:  %2 = load i8, ptr %1, align 1 
            67:  store i8 %0, ptr %_0, align 1 
            68:  %3 = getelementptr inbounds i8, ptr %_0, i32 1 
            69:  store i8 %2, ptr %3, align 1 
            70:  %4 = load i16, ptr %_0, align 1 
            71:  ret i16 %4 
            72: } 
            73:  
            74: ; Function Attrs: nounwind uwtable 
            75: define i32 @cplx_i16(ptr byval([4 x i8]) align 4 %x) unnamed_addr #0 !guid !8 { 
            76: start: 
            77:  %_0 = alloca [4 x i8], align 2 
            78:  %0 = load i16, ptr %x, align 2 
            79:  %1 = getelementptr inbounds i8, ptr %x, i32 2 
            80:  %2 = load i16, ptr %1, align 2 
            81:  store i16 %0, ptr %_0, align 2 
            82:  %3 = getelementptr inbounds i8, ptr %_0, i32 2 
            83:  store i16 %2, ptr %3, align 2 
            84:  %4 = load i32, ptr %_0, align 2 
            85:  ret i32 %4 
            86: } 
            87:  
            88: ; Function Attrs: nounwind uwtable 
            89: define i64 @cplx_i32(ptr byval([8 x i8]) align 4 %x) unnamed_addr #0 !guid !9 { 
            90: start: 
            91:  %_0 = alloca [8 x i8], align 4 
            92:  %0 = load i32, ptr %x, align 4 
            93:  %1 = getelementptr inbounds i8, ptr %x, i32 4 
            94:  %2 = load i32, ptr %1, align 4 
            95:  store i32 %0, ptr %_0, align 4 
            96:  %3 = getelementptr inbounds i8, ptr %_0, i32 4 
            97:  store i32 %2, ptr %3, align 4 
            98:  %4 = load i64, ptr %_0, align 4 
            99:  ret i64 %4 
           100: } 
           101:  
           102: ; Function Attrs: nounwind uwtable 
           103: define void @cplx_i64(ptr sret([16 x i8]) align 4 %_0, ptr byval([16 x i8]) align 4 %x) unnamed_addr #0 !guid !10 { 
           104: start: 
           105:  %0 = load i64, ptr %x, align 4 
           106:  %1 = getelementptr inbounds i8, ptr %x, i32 8 
           107:  %2 = load i64, ptr %1, align 4 
           108:  store i64 %0, ptr %_0, align 4 
           109:  %3 = getelementptr inbounds i8, ptr %_0, i32 8 
           110:  store i64 %2, ptr %3, align 4 
           111:  ret void 
           112: } 
           113:  
           114: ; Function Attrs: nounwind uwtable 
           115: define void @wrapper_cplx_i64(ptr sret([16 x i8]) align 4 %_0, ptr byval([16 x i8]) align 4 %x) unnamed_addr #0 !guid !11 { 
           116: start: 
           117:  %0 = load i64, ptr %x, align 4 
           118:  %1 = getelementptr inbounds i8, ptr %x, i32 8 
           119:  %2 = load i64, ptr %1, align 4 
           120:  store i64 %0, ptr %_0, align 4 
           121:  %3 = getelementptr inbounds i8, ptr %_0, i32 8 
           122:  store i64 %2, ptr %3, align 4 
           123:  ret void 
           124: } 
           125:  
           126: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) 
           127: declare void @llvm.memcpy.p0.p0.i32(ptr noalias writeonly captures(none), ptr noalias readonly captures(none), i32, i1 immarg) #1 
           128:  
           129: attributes #0 = { nounwind uwtable "probe-stack"="inline-asm" "target-cpu"="pentium4" } 
           130: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } 
           131:  
           132: !llvm.module.flags = !{!0, !1} 
           133: !llvm.ident = !{!2} 
           134:  
           135: !0 = !{i32 8, !"PIC Level", i32 2} 
           136: !1 = !{i32 7, !"uwtable", i32 2} 
           137: !2 = !{!"rustc version 1.99.0-nightly (6996cf085 2026-08-13)"} 
           138: !3 = !{i64 -8440986409961323678} 
           139: !4 = !{i64 8034339887331794439} 
           140: !5 = !{i64 995161160069333075} 
           141: !6 = !{i64 -8859876199905633862} 
           142: !7 = !{i64 220865743707660777} 
           143: !8 = !{i64 -4125871504172106378} 
           144: !9 = !{i64 5900648371363835618} 
           145: !10 = !{i64 -4172843327986453609} 
           146: !11 = !{i64 -650834793805489419} 
check:111'3                                      } search range end (exclusive)
>>>>>>

------------------------------------------

error in revision `I686`: 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/complex-abi.I686/complex-abi.ll" "/checkout/tests/codegen-llvm/complex-abi.rs" "--check-prefix=CHECK" "--check-prefix" "I686" "--allow-unused-prefixes" "--dump-input-context" "100"
stdout: none
--- stderr -------------------------------
/checkout/tests/codegen-llvm/complex-abi.rs:111:11: error: I686: expected string not found in input
 // I686: define{{.*}} <2 x half> @cplx_f16(ptr {{.*}} byval([4 x i8]) {{.*}})
          ^
/checkout/obj/build/x86_64-unknown-linux-gnu/test/codegen-llvm/complex-abi.I686/complex-abi.ll:1:1: note: scanning from here
; ModuleID = 'complex_abi.8dfb70534ff3b38e-cgu.0'
^
/checkout/obj/build/x86_64-unknown-linux-gnu/test/codegen-llvm/complex-abi.I686/complex-abi.ll:7:1: note: possible intended match here
define <2 x half> @cplx_f16(ptr byval([4 x i8]) align 4 %x) unnamed_addr #0 !guid !3 {
^

Input file: /checkout/obj/build/x86_64-unknown-linux-gnu/test/codegen-llvm/complex-abi.I686/complex-abi.ll
Check file: /checkout/tests/codegen-llvm/complex-abi.rs

-dump-input=help explains the following input dump.

Input was:
<<<<<<
             1: ; ModuleID = 'complex_abi.8dfb70534ff3b38e-cgu.0' 
check:111'0    {                                                    search range start (exclusive)
check:111'1                                                         error: no match found in search range
             2: source_filename = "complex_abi.8dfb70534ff3b38e-cgu.0" 
             3: target datalayout = "e-m:e-p:32:32-p270:32:32-p271:32:32-p272:64:64-i128:128-f64:32:64-f80:32-n8:16:32-S128" 
             4: target triple = "i686-unknown-linux-gnu" 
             5:  
             6: ; Function Attrs: nounwind uwtable 
             7: define <2 x half> @cplx_f16(ptr byval([4 x i8]) align 4 %x) unnamed_addr #0 !guid !3 { 
check:111'2     ?                                                                                        possible intended match
             8: start: 
             9:  %_0 = alloca [4 x i8], align 2 
            10:  %0 = load half, ptr %x, align 2 
            11:  %1 = getelementptr inbounds i8, ptr %x, i32 2 
            12:  %2 = load half, ptr %1, align 2 
            13:  store half %0, ptr %_0, align 2 
            14:  %3 = getelementptr inbounds i8, ptr %_0, i32 2 
            15:  store half %2, ptr %3, align 2 
            16:  %4 = load <2 x half>, ptr %_0, align 2 
            17:  ret <2 x half> %4 
            18: } 
            19:  
            20: ; Function Attrs: nounwind uwtable 
            21: define i64 @cplx_f32(ptr byval([8 x i8]) align 4 %x) unnamed_addr #0 !guid !4 { 
            22: start: 
            23:  %_0 = alloca [8 x i8], align 4 
            24:  %0 = load float, ptr %x, align 4 
            25:  %1 = getelementptr inbounds i8, ptr %x, i32 4 
            26:  %2 = load float, ptr %1, align 4 
            27:  store float %0, ptr %_0, align 4 
            28:  %3 = getelementptr inbounds i8, ptr %_0, i32 4 
            29:  store float %2, ptr %3, align 4 
            30:  %4 = load i64, ptr %_0, align 4 
            31:  ret i64 %4 
            32: } 
            33:  
            34: ; Function Attrs: nounwind uwtable 
            35: define void @cplx_f64(ptr sret([16 x i8]) align 4 %_0, ptr byval([16 x i8]) align 4 %x) unnamed_addr #0 !guid !5 { 
            36: start: 
            37:  %0 = load double, ptr %x, align 4 
            38:  %1 = getelementptr inbounds i8, ptr %x, i32 8 
            39:  %2 = load double, ptr %1, align 4 
            40:  store double %0, ptr %_0, align 4 
            41:  %3 = getelementptr inbounds i8, ptr %_0, i32 8 
            42:  store double %2, ptr %3, align 4 
            43:  ret void 
            44: } 
            45:  
            46: ; Function Attrs: nounwind uwtable 
            47: define void @cplx_f128(ptr sret([32 x i8]) align 16 %_0, ptr byval([32 x i8]) align 4 %0) unnamed_addr #0 !guid !6 { 
            48: start: 
            49:  %x = alloca [32 x i8], align 16 
            50:  call void @llvm.memcpy.p0.p0.i32(ptr align 16 %x, ptr align 4 %0, i32 32, i1 false) 
            51:  %1 = load fp128, ptr %x, align 16 
            52:  %2 = getelementptr inbounds i8, ptr %x, i32 16 
            53:  %3 = load fp128, ptr %2, align 16 
            54:  store fp128 %1, ptr %_0, align 16 
            55:  %4 = getelementptr inbounds i8, ptr %_0, i32 16 
            56:  store fp128 %3, ptr %4, align 16 
            57:  ret void 
            58: } 
            59:  
            60: ; Function Attrs: nounwind uwtable 
            61: define i16 @cplx_i8(ptr byval([2 x i8]) align 4 %x) unnamed_addr #0 !guid !7 { 
            62: start: 
            63:  %_0 = alloca [2 x i8], align 1 
            64:  %0 = load i8, ptr %x, align 1 
            65:  %1 = getelementptr inbounds i8, ptr %x, i32 1 
            66:  %2 = load i8, ptr %1, align 1 
            67:  store i8 %0, ptr %_0, align 1 
            68:  %3 = getelementptr inbounds i8, ptr %_0, i32 1 
            69:  store i8 %2, ptr %3, align 1 
            70:  %4 = load i16, ptr %_0, align 1 
            71:  ret i16 %4 
            72: } 
            73:  
            74: ; Function Attrs: nounwind uwtable 
            75: define i32 @cplx_i16(ptr byval([4 x i8]) align 4 %x) unnamed_addr #0 !guid !8 { 
            76: start: 
            77:  %_0 = alloca [4 x i8], align 2 
            78:  %0 = load i16, ptr %x, align 2 
            79:  %1 = getelementptr inbounds i8, ptr %x, i32 2 
            80:  %2 = load i16, ptr %1, align 2 
            81:  store i16 %0, ptr %_0, align 2 
            82:  %3 = getelementptr inbounds i8, ptr %_0, i32 2 
            83:  store i16 %2, ptr %3, align 2 
            84:  %4 = load i32, ptr %_0, align 2 
            85:  ret i32 %4 
            86: } 
            87:  
            88: ; Function Attrs: nounwind uwtable 
            89: define i64 @cplx_i32(ptr byval([8 x i8]) align 4 %x) unnamed_addr #0 !guid !9 { 
            90: start: 
            91:  %_0 = alloca [8 x i8], align 4 
            92:  %0 = load i32, ptr %x, align 4 
            93:  %1 = getelementptr inbounds i8, ptr %x, i32 4 
            94:  %2 = load i32, ptr %1, align 4 
            95:  store i32 %0, ptr %_0, align 4 
            96:  %3 = getelementptr inbounds i8, ptr %_0, i32 4 
            97:  store i32 %2, ptr %3, align 4 
            98:  %4 = load i64, ptr %_0, align 4 
            99:  ret i64 %4 
           100: } 
           101:  
           102: ; Function Attrs: nounwind uwtable 
           103: define void @cplx_i64(ptr sret([16 x i8]) align 4 %_0, ptr byval([16 x i8]) align 4 %x) unnamed_addr #0 !guid !10 { 
           104: start: 
           105:  %0 = load i64, ptr %x, align 4 
           106:  %1 = getelementptr inbounds i8, ptr %x, i32 8 
           107:  %2 = load i64, ptr %1, align 4 
           108:  store i64 %0, ptr %_0, align 4 
           109:  %3 = getelementptr inbounds i8, ptr %_0, i32 8 
           110:  store i64 %2, ptr %3, align 4 
           111:  ret void 
           112: } 
           113:  
           114: ; Function Attrs: nounwind uwtable 
           115: define void @wrapper_cplx_i64(ptr sret([16 x i8]) align 4 %_0, ptr byval([16 x i8]) align 4 %x) unnamed_addr #0 !guid !11 { 
           116: start: 
           117:  %0 = load i64, ptr %x, align 4 
           118:  %1 = getelementptr inbounds i8, ptr %x, i32 8 
           119:  %2 = load i64, ptr %1, align 4 
           120:  store i64 %0, ptr %_0, align 4 
           121:  %3 = getelementptr inbounds i8, ptr %_0, i32 8 
           122:  store i64 %2, ptr %3, align 4 
           123:  ret void 
           124: } 
           125:  
           126: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) 
           127: declare void @llvm.memcpy.p0.p0.i32(ptr noalias writeonly captures(none), ptr noalias readonly captures(none), i32, i1 immarg) #1 
           128:  
           129: attributes #0 = { nounwind uwtable "probe-stack"="inline-asm" "target-cpu"="pentium4" } 
           130: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } 
           131:  
           132: !llvm.module.flags = !{!0, !1} 
           133: !llvm.ident = !{!2} 
           134:  
           135: !0 = !{i32 8, !"PIC Level", i32 2} 
           136: !1 = !{i32 7, !"uwtable", i32 2} 
           137: !2 = !{!"rustc version 1.99.0-nightly (6996cf085 2026-08-13)"} 
           138: !3 = !{i64 -8440986409961323678} 
           139: !4 = !{i64 8034339887331794439} 
           140: !5 = !{i64 995161160069333075} 
           141: !6 = !{i64 -8859876199905633862} 
           142: !7 = !{i64 220865743707660777} 
           143: !8 = !{i64 -4125871504172106378} 
           144: !9 = !{i64 5900648371363835618} 
           145: !10 = !{i64 -4172843327986453609} 
           146: !11 = !{i64 -650834793805489419} 
check:111'3                                      } search range end (exclusive)
>>>>>>
------------------------------------------

---- [codegen] tests/codegen-llvm/complex-abi.rs#I686 stdout end ----
---- [codegen] tests/codegen-llvm/complex-abi.rs#WIN32_GNU stdout ----
------FileCheck stdout------------------------------

------FileCheck stderr------------------------------
/checkout/tests/codegen-llvm/complex-abi.rs:118:16: error: WIN32_GNU: expected string not found in input
 // WIN32_GNU: define{{.*}} <2 x half> @cplx_f16(ptr {{.*}} byval([4 x i8]) {{.*}})
               ^
/checkout/obj/build/x86_64-unknown-linux-gnu/test/codegen-llvm/complex-abi.WIN32_GNU/complex-abi.ll:1:1: note: scanning from here
; ModuleID = 'complex_abi.8dfb70534ff3b38e-cgu.0'
^
/checkout/obj/build/x86_64-unknown-linux-gnu/test/codegen-llvm/complex-abi.WIN32_GNU/complex-abi.ll:7:1: note: possible intended match here
define <2 x half> @cplx_f16(ptr byval([4 x i8]) align 4 %x) unnamed_addr #0 !guid !4 {
^

Input file: /checkout/obj/build/x86_64-unknown-linux-gnu/test/codegen-llvm/complex-abi.WIN32_GNU/complex-abi.ll
Check file: /checkout/tests/codegen-llvm/complex-abi.rs

-dump-input=help explains the following input dump.

Input was:
<<<<<<
             1: ; ModuleID = 'complex_abi.8dfb70534ff3b38e-cgu.0' 
check:118'0    {                                                    search range start (exclusive)
check:118'1                                                         error: no match found in search range
             2: source_filename = "complex_abi.8dfb70534ff3b38e-cgu.0" 
             3: target datalayout = "e-m:x-p:32:32-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:32-n8:16:32-a:0:32-S32" 
             4: target triple = "i686-pc-windows-gnu" 
             5:  
             6: ; Function Attrs: nounwind uwtable 
             7: define <2 x half> @cplx_f16(ptr byval([4 x i8]) align 4 %x) unnamed_addr #0 !guid !4 { 
check:118'2     ?                                                                                        possible intended match
             8: start: 
             9:  %_0 = alloca [4 x i8], align 2 
            10:  %0 = load half, ptr %x, align 2 
            11:  %1 = getelementptr inbounds i8, ptr %x, i32 2 
            12:  %2 = load half, ptr %1, align 2 
            13:  store half %0, ptr %_0, align 2 
            14:  %3 = getelementptr inbounds i8, ptr %_0, i32 2 
            15:  store half %2, ptr %3, align 2 
            16:  %4 = load <2 x half>, ptr %_0, align 2 
            17:  ret <2 x half> %4 
            18: } 
            19:  
            20: ; Function Attrs: nounwind uwtable 
            21: define i64 @cplx_f32(ptr byval([8 x i8]) align 4 %x) unnamed_addr #0 !guid !5 { 
            22: start: 
            23:  %_0 = alloca [8 x i8], align 4 
            24:  %0 = load float, ptr %x, align 4 
            25:  %1 = getelementptr inbounds i8, ptr %x, i32 4 
            26:  %2 = load float, ptr %1, align 4 
            27:  store float %0, ptr %_0, align 4 
            28:  %3 = getelementptr inbounds i8, ptr %_0, i32 4 
            29:  store float %2, ptr %3, align 4 
            30:  %4 = load i64, ptr %_0, align 4 
            31:  ret i64 %4 
            32: } 
            33:  
            34: ; Function Attrs: nounwind uwtable 
            35: define void @cplx_f64(ptr sret([16 x i8]) align 8 %_0, ptr byval([16 x i8]) align 4 %0) unnamed_addr #0 !guid !6 { 
            36: start: 
            37:  %x = alloca [16 x i8], align 8 
            38:  call void @llvm.memcpy.p0.p0.i32(ptr align 8 %x, ptr align 4 %0, i32 16, i1 false) 
            39:  %1 = load double, ptr %x, align 8 
            40:  %2 = getelementptr inbounds i8, ptr %x, i32 8 
            41:  %3 = load double, ptr %2, align 8 
            42:  store double %1, ptr %_0, align 4 
            43:  %4 = getelementptr inbounds i8, ptr %_0, i32 8 
            44:  store double %3, ptr %4, align 4 
            45:  ret void 
            46: } 
            47:  
            48: ; Function Attrs: nounwind uwtable 
            49: define void @cplx_f128(ptr sret([32 x i8]) align 16 %_0, ptr byval([32 x i8]) align 4 %0) unnamed_addr #0 !guid !7 { 
            50: start: 
            51:  %x = alloca [32 x i8], align 16 
            52:  call void @llvm.memcpy.p0.p0.i32(ptr align 16 %x, ptr align 4 %0, i32 32, i1 false) 
            53:  %1 = load fp128, ptr %x, align 16 
            54:  %2 = getelementptr inbounds i8, ptr %x, i32 16 
            55:  %3 = load fp128, ptr %2, align 16 
            56:  store fp128 %1, ptr %_0, align 4 
            57:  %4 = getelementptr inbounds i8, ptr %_0, i32 16 
            58:  store fp128 %3, ptr %4, align 4 
            59:  ret void 
            60: } 
            61:  
            62: ; Function Attrs: nounwind uwtable 
            63: define i16 @cplx_i8(ptr byval([2 x i8]) align 4 %x) unnamed_addr #0 !guid !8 { 
            64: start: 
            65:  %_0 = alloca [2 x i8], align 1 
            66:  %0 = load i8, ptr %x, align 1 
            67:  %1 = getelementptr inbounds i8, ptr %x, i32 1 
            68:  %2 = load i8, ptr %1, align 1 
            69:  store i8 %0, ptr %_0, align 1 
            70:  %3 = getelementptr inbounds i8, ptr %_0, i32 1 
            71:  store i8 %2, ptr %3, align 1 
            72:  %4 = load i16, ptr %_0, align 1 
            73:  ret i16 %4 
            74: } 
            75:  
            76: ; Function Attrs: nounwind uwtable 
            77: define i32 @cplx_i16(ptr byval([4 x i8]) align 4 %x) unnamed_addr #0 !guid !9 { 
            78: start: 
            79:  %_0 = alloca [4 x i8], align 2 
            80:  %0 = load i16, ptr %x, align 2 
            81:  %1 = getelementptr inbounds i8, ptr %x, i32 2 
            82:  %2 = load i16, ptr %1, align 2 
            83:  store i16 %0, ptr %_0, align 2 
            84:  %3 = getelementptr inbounds i8, ptr %_0, i32 2 
            85:  store i16 %2, ptr %3, align 2 
            86:  %4 = load i32, ptr %_0, align 2 
            87:  ret i32 %4 
            88: } 
            89:  
            90: ; Function Attrs: nounwind uwtable 
            91: define i64 @cplx_i32(ptr byval([8 x i8]) align 4 %x) unnamed_addr #0 !guid !10 { 
            92: start: 
            93:  %_0 = alloca [8 x i8], align 4 
            94:  %0 = load i32, ptr %x, align 4 
            95:  %1 = getelementptr inbounds i8, ptr %x, i32 4 
            96:  %2 = load i32, ptr %1, align 4 
            97:  store i32 %0, ptr %_0, align 4 
            98:  %3 = getelementptr inbounds i8, ptr %_0, i32 4 
            99:  store i32 %2, ptr %3, align 4 
           100:  %4 = load i64, ptr %_0, align 4 
           101:  ret i64 %4 
           102: } 
           103:  
           104: ; Function Attrs: nounwind uwtable 
           105: define void @cplx_i64(ptr sret([16 x i8]) align 8 %_0, ptr byval([16 x i8]) align 4 %0) unnamed_addr #0 !guid !11 { 
           106: start: 
           107:  %x = alloca [16 x i8], align 8 
           108:  call void @llvm.memcpy.p0.p0.i32(ptr align 8 %x, ptr align 4 %0, i32 16, i1 false) 
           109:  %1 = load i64, ptr %x, align 8 
           110:  %2 = getelementptr inbounds i8, ptr %x, i32 8 
           111:  %3 = load i64, ptr %2, align 8 
           112:  store i64 %1, ptr %_0, align 4 
           113:  %4 = getelementptr inbounds i8, ptr %_0, i32 8 
           114:  store i64 %3, ptr %4, align 4 
           115:  ret void 
           116: } 
           117:  
           118: ; Function Attrs: nounwind uwtable 
           119: define void @wrapper_cplx_i64(ptr sret([16 x i8]) align 8 %_0, ptr byval([16 x i8]) align 4 %0) unnamed_addr #0 !guid !12 { 
           120: start: 
           121:  %x = alloca [16 x i8], align 8 
           122:  call void @llvm.memcpy.p0.p0.i32(ptr align 8 %x, ptr align 4 %0, i32 16, i1 false) 
           123:  %1 = load i64, ptr %x, align 8 
           124:  %2 = getelementptr inbounds i8, ptr %x, i32 8 

@rust-bors rust-bors Bot 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 Aug 13, 2026
@rust-bors

rust-bors Bot commented Aug 13, 2026

Copy link
Copy Markdown
Contributor

💔 Test for 6996cf0 failed: CI. Failed job:

@rust-bors rust-bors Bot added S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Aug 13, 2026
@rust-bors

rust-bors Bot commented Aug 13, 2026

Copy link
Copy Markdown
Contributor

PR #158885, which is a member of this rollup, was unapproved.

@rust-bors rust-bors Bot closed this Aug 13, 2026
@rust-bors

rust-bors Bot commented Aug 13, 2026

Copy link
Copy Markdown
Contributor

PR #158885, which is a member of this rollup, changed its commit SHA.

This rollup was closed.

@rustbot rustbot removed the S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. label Aug 13, 2026
@jhpratt
jhpratt deleted the rollup-nMRbCFi branch August 13, 2026 19:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-attributes Area: Attributes (`#[…]`, `#![…]`) A-CI Area: Our Github Actions CI A-LLVM Area: Code generation parts specific to LLVM. Both correctness bugs and optimization-related issues. A-run-make Area: port run-make Makefiles to rmake.rs A-rustc-dev-guide Area: rustc-dev-guide A-rustdoc-json Area: Rustdoc JSON backend A-test-infra-minicore Area: `minicore` test auxiliary and `//@ add-core-stubs` A-testsuite Area: The testsuite used to check the correctness of rustc A-tidy Area: The tidy tool 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-infra Relevant to the infrastructure 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.

Projects

None yet

Development

Successfully merging this pull request may close these issues.