Skip to content

Conversation

matthiaskrgr
Copy link
Member

@matthiaskrgr matthiaskrgr commented Oct 8, 2025

Successful merges:

r? @ghost
@rustbot modify labels: rollup

Create a similar rollup

GuillaumeGomez and others added 22 commits October 4, 2025 13:36
This adds a test for the cold attribute to verify that it actually does
something, and that it applies correctly in all the positions it is
expected to work.
[rustdoc] Correctly handle `should_panic` doctest attribute and fix `--no-run` test flag on the 2024 edition

Fixes rust-lang#143009.
Fixes rust-lang#143858.

Since it includes fixes from rust-lang#143453, it's taking it over (commits 2, 3 and 4 are from rust-lang#143453).

For `--no-run`, we forgot to check the "global" options in the 2024 edition, fixed in the first commit.

For `should_panic` fix, the exit code check has been fixed.

cc ``@TroyKomodo`` (thanks so much for providing such a complete test, made my life a lot easier!)
r? ``@notriddle``
…d, r=joboet

Add diagnostic items for `pub mod consts` of FP types

They will be used in Clippy.
…=JonathanBrouwer

Fix double warnings on `#[no_mangle]`

Fixes 2 out of 3 cases in rust-lang#147417
The fix on closures removes the old error and marks closures as an error target.
The fix on consts adds `AllowSilent` to to ignore a target, and uses the old error because that one has a nice suggestion.

r? ``@jdonszelmann``
…ukang

Add a test for the cold attribute

This adds a test for the cold attribute to verify that it actually does something, and that it applies correctly in all the positions it is expected to work.
…miasko

Do not invalidate CFG caches in CtfeLimit.

This does not matter much, as no optimization pass runs after `CtfeLimit`, but I still find the code cleaner.
format: some small cleanup

Some small cleanup and some additional comments I did while trying to understand this code.
@rustbot rustbot added A-attributes Area: Attributes (`#[…]`, `#![…]`) A-run-make Area: port run-make Makefiles to rmake.rs S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. 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. rollup A PR which is a rollup labels Oct 8, 2025
@matthiaskrgr
Copy link
Member Author

@bors r+ rollup=never p=5

@bors
Copy link
Collaborator

bors commented Oct 8, 2025

📌 Commit f41bcbc has been approved by matthiaskrgr

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 Oct 8, 2025
@bors
Copy link
Collaborator

bors commented Oct 8, 2025

⌛ Testing commit f41bcbc with merge 111cf48...

bors added a commit that referenced this pull request Oct 8, 2025
Rollup of 6 pull requests

Successful merges:

 - #143900 ([rustdoc] Correctly handle `should_panic` doctest attribute and fix `--no-run` test flag on the 2024 edition)
 - #147420 (Add diagnostic items for `pub mod consts` of FP types)
 - #147467 (Fix double warnings on `#[no_mangle]`)
 - #147476 (Add a test for the cold attribute)
 - #147480 (Do not invalidate CFG caches in CtfeLimit.)
 - #147481 (format: some small cleanup)

r? `@ghost`
`@rustbot` modify labels: rollup
@rust-log-analyzer
Copy link
Collaborator

The job x86_64-gnu-llvm-20-3 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/cold-attribute.rs stdout ----
------FileCheck stdout------------------------------

------FileCheck stderr------------------------------
/checkout/tests/codegen-llvm/cold-attribute.rs:74:17: error: CHECK-NEXT: expected string not found in input
 // CHECK-NEXT: ; Function Attrs: uwtable
                ^
/checkout/obj/build/x86_64-unknown-linux-gnu/test/codegen-llvm/cold-attribute/cold-attribute.ll:548:68: note: scanning from here
; <cold_attribute::S as cold_attribute::Trait>::trait_fn_overridden
                                                                   ^
/checkout/obj/build/x86_64-unknown-linux-gnu/test/codegen-llvm/cold-attribute/cold-attribute.ll:558:1: note: possible intended match here
; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: readwrite)
^

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

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

Input was:
<<<<<<
           .
           .
           .
         448:  call void @_ZN4core9panicking16panic_in_cleanup17h65418a56830ce341E() #10 
         449:  unreachable 
         450: } 
         451:  
         452: ; cold_attribute::async_block::{{closure}}::{{closure}} 
         453: ; Function Attrs: cold inlinehint nonlazybind uwtable 
         454: define zeroext i1 @"_ZN14cold_attribute11async_block28_$u7b$$u7b$closure$u7d$$u7d$28_$u7b$$u7b$closure$u7d$$u7d$17h711b3ab0a48744f8E"(ptr align 1 %_1, ptr align 8 %_task_context) unnamed_addr #3 { 
         455: start: 
         456:  %0 = load i8, ptr %_1, align 1 
         457:  %_3 = zext i8 %0 to i32 
         458:  %1 = trunc nuw i32 %_3 to i1 
         459:  br i1 %1, label %bb2, label %bb1 
         460:  
         461: bb2: ; preds = %bb2, %start 
         462:  br i1 false, label %bb2, label %panic 
         463:  
         464: bb1: ; preds = %start 
         465:  store i8 1, ptr %_1, align 1 
         466:  ret i1 false 
         467:  
         468: panic: ; preds = %bb2 
         469: ; call core::panicking::panic_const::panic_const_async_fn_resumed 
         470:  call void @_ZN4core9panicking11panic_const28panic_const_async_fn_resumed17had9a2f420d578152E(ptr align 8 @alloc_9810ca03e7ce5512a14fc1c2f280e853) #8 
         471:  unreachable 
         472:  
         473: bb3: ; No predecessors! 
         474:  unreachable 
         475: } 
         476:  
         477: ; cold_attribute::closure 
         478: ; Function Attrs: nonlazybind uwtable 
         479: define void @_ZN14cold_attribute7closure17h025c0d2abf9012aaE() unnamed_addr #0 { 
         480: start: 
         481: ; call cold_attribute::closure::x 
         482:  call void @_ZN14cold_attribute7closure1x17h93974519e8023332E() 
         483:  ret void 
         484: } 
         485:  
         486: ; cold_attribute::closure::x 
         487: ; Function Attrs: nonlazybind uwtable 
         488: define internal void @_ZN14cold_attribute7closure1x17h93974519e8023332E() unnamed_addr #0 personality ptr @rust_eh_personality { 
         489: start: 
         490:  %0 = alloca [16 x i8], align 8 
         491:  %f = alloca [0 x i8], align 1 
         492: ; invoke cold_attribute::closure::{{closure}} 
         493:  invoke void @"_ZN14cold_attribute7closure28_$u7b$$u7b$closure$u7d$$u7d$17h1daa09e7d5f4f843E"(ptr align 1 %f) 
         494:  to label %bb1 unwind label %cleanup 
         495:  
         496: bb3: ; preds = %cleanup 
         497:  %1 = load ptr, ptr %0, align 8 
         498:  %2 = getelementptr inbounds i8, ptr %0, i64 8 
         499:  %3 = load i32, ptr %2, align 8 
         500:  %4 = insertvalue { ptr, i32 } poison, ptr %1, 0 
         501:  %5 = insertvalue { ptr, i32 } %4, i32 %3, 1 
         502:  resume { ptr, i32 } %5 
         503:  
         504: cleanup: ; preds = %start 
         505:  %6 = landingpad { ptr, i32 } 
         506:  cleanup 
         507:  %7 = extractvalue { ptr, i32 } %6, 0 
         508:  %8 = extractvalue { ptr, i32 } %6, 1 
         509:  store ptr %7, ptr %0, align 8 
         510:  %9 = getelementptr inbounds i8, ptr %0, i64 8 
         511:  store i32 %8, ptr %9, align 8 
         512:  br label %bb3 
         513:  
         514: bb1: ; preds = %start 
         515:  ret void 
         516: } 
         517:  
         518: ; cold_attribute::closure::{{closure}} 
         519: ; Function Attrs: cold inlinehint nonlazybind uwtable 
         520: define internal void @"_ZN14cold_attribute7closure28_$u7b$$u7b$closure$u7d$$u7d$17h1daa09e7d5f4f843E"(ptr align 1 %_1) unnamed_addr #3 { 
         521: start: 
         522:  ret void 
         523: } 
         524:  
         525: ; cold_attribute::S::method 
         526: ; Function Attrs: cold nonlazybind uwtable 
         527: define void @_ZN14cold_attribute1S6method17h65a7d943b9262840E(ptr align 1 %self) unnamed_addr #1 { 
         528: start: 
         529:  ret void 
         530: } 
         531:  
         532: ; cold_attribute::Trait::trait_fn 
         533: ; Function Attrs: cold nonlazybind uwtable 
         534: define void @_ZN14cold_attribute5Trait8trait_fn17hfdb84888b56f9fe3E(ptr align 1 %self) unnamed_addr #1 { 
         535: start: 
         536:  ret void 
         537: } 
         538:  
         539: ; <cold_attribute::S as cold_attribute::Trait>::impl_fn 
         540: ; Function Attrs: cold nonlazybind uwtable 
         541: define void @"_ZN59_$LT$cold_attribute..S$u20$as$u20$cold_attribute..Trait$GT$7impl_fn17he07edd1bf841af0dE"(ptr align 1 %self) unnamed_addr #1 { 
         542: start: 
         543: ; call cold_attribute::Trait::trait_fn 
         544:  call void @_ZN14cold_attribute5Trait8trait_fn17hfdb84888b56f9fe3E(ptr align 1 %self) 
         545:  ret void 
         546: } 
         547:  
         548: ; <cold_attribute::S as cold_attribute::Trait>::trait_fn_overridden 
next:74'0                                                                        X error: no match found
         549: ; Function Attrs: nonlazybind uwtable 
next:74'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         550: define void @"_ZN59_$LT$cold_attribute..S$u20$as$u20$cold_attribute..Trait$GT$19trait_fn_overridden17h5804df6e206fe68bE"(ptr align 1 %self) unnamed_addr #0 { 
next:74'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         551: start: 
next:74'0     ~~~~~~~
         552:  ret void 
next:74'0     ~~~~~~~~~~
         553: } 
next:74'0     ~~
         554:  
next:74'0     ~
         555: ; Function Attrs: nounwind nonlazybind uwtable 
next:74'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         556: declare i32 @rust_eh_personality(i32, i32, i64, ptr, ptr) unnamed_addr #4 
next:74'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         557:  
next:74'0     ~
         558: ; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: readwrite) 
next:74'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
next:74'1     ?                                                                                  possible intended match
         559: declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #5 
next:74'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         560:  
next:74'0     ~
         561: ; core::panicking::panic_const::panic_const_async_fn_resumed 
next:74'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         562: ; Function Attrs: cold noinline noreturn nonlazybind uwtable 
next:74'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         563: declare void @_ZN4core9panicking11panic_const28panic_const_async_fn_resumed17had9a2f420d578152E(ptr align 8) unnamed_addr #6 
next:74'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         564:  
next:74'0     ~
         565: ; core::panicking::panic_const::panic_const_async_fn_resumed_panic 
next:74'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         566: ; Function Attrs: cold noinline noreturn nonlazybind uwtable 
next:74'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         567: declare void @_ZN4core9panicking11panic_const34panic_const_async_fn_resumed_panic17h011983c5a5e8da01E(ptr align 8) unnamed_addr #6 
next:74'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         568:  
next:74'0     ~
         569: ; core::panicking::panic_in_cleanup 
next:74'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         570: ; Function Attrs: cold minsize noinline noreturn nounwind nonlazybind optsize uwtable 
next:74'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         571: declare void @_ZN4core9panicking16panic_in_cleanup17h65418a56830ce341E() unnamed_addr #7 
next:74'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         572:  
next:74'0     ~
         573: attributes #0 = { nonlazybind uwtable "probe-stack"="inline-asm" "target-cpu"="x86-64" } 
next:74'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         574: attributes #1 = { cold nonlazybind uwtable "probe-stack"="inline-asm" "target-cpu"="x86-64" } 
next:74'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         575: attributes #2 = { inlinehint nonlazybind uwtable "probe-stack"="inline-asm" "target-cpu"="x86-64" } 
next:74'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         576: attributes #3 = { cold inlinehint nonlazybind uwtable "probe-stack"="inline-asm" "target-cpu"="x86-64" } 
next:74'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         577: attributes #4 = { nounwind nonlazybind uwtable "probe-stack"="inline-asm" "target-cpu"="x86-64" } 
next:74'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         578: attributes #5 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) } 
next:74'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         579: attributes #6 = { cold noinline noreturn nonlazybind uwtable "probe-stack"="inline-asm" "target-cpu"="x86-64" } 
next:74'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         580: attributes #7 = { cold minsize noinline noreturn nounwind nonlazybind optsize uwtable "probe-stack"="inline-asm" "target-cpu"="x86-64" } 
next:74'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         581: attributes #8 = { noreturn } 
next:74'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         582: attributes #9 = { cold } 
next:74'0     ~~~~~~~~~~~~~~~~~~~~~~~~~
         583: attributes #10 = { cold noreturn nounwind } 
next:74'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         584:  
next:74'0     ~
         585: !llvm.module.flags = !{!0, !1} 
next:74'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         586: !llvm.ident = !{!2} 
next:74'0     ~~~~~~~~~~~~~~~~~~~~
         587:  
next:74'0     ~
         588: !0 = !{i32 8, !"PIC Level", i32 2} 
next:74'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         589: !1 = !{i32 2, !"RtLibUseGOT", i32 1} 
next:74'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         590: !2 = !{!"rustc version 1.92.0-nightly (111cf48fd 2025-10-08)"} 
next:74'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>>>>>>

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

error: verification with 'FileCheck' failed
status: exit status: 1
command: "/usr/lib/llvm-20/bin/FileCheck" "--input-file" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/codegen-llvm/cold-attribute/cold-attribute.ll" "/checkout/tests/codegen-llvm/cold-attribute.rs" "--check-prefix=CHECK" "--allow-unused-prefixes" "--dump-input-context" "100"
stdout: none
--- stderr -------------------------------
/checkout/tests/codegen-llvm/cold-attribute.rs:74:17: error: CHECK-NEXT: expected string not found in input
 // CHECK-NEXT: ; Function Attrs: uwtable
                ^
/checkout/obj/build/x86_64-unknown-linux-gnu/test/codegen-llvm/cold-attribute/cold-attribute.ll:548:68: note: scanning from here
; <cold_attribute::S as cold_attribute::Trait>::trait_fn_overridden
                                                                   ^
/checkout/obj/build/x86_64-unknown-linux-gnu/test/codegen-llvm/cold-attribute/cold-attribute.ll:558:1: note: possible intended match here
; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: readwrite)
^

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

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

Input was:
<<<<<<
           .
           .
           .
         448:  call void @_ZN4core9panicking16panic_in_cleanup17h65418a56830ce341E() #10 
         449:  unreachable 
         450: } 
         451:  
         452: ; cold_attribute::async_block::{{closure}}::{{closure}} 
         453: ; Function Attrs: cold inlinehint nonlazybind uwtable 
         454: define zeroext i1 @"_ZN14cold_attribute11async_block28_$u7b$$u7b$closure$u7d$$u7d$28_$u7b$$u7b$closure$u7d$$u7d$17h711b3ab0a48744f8E"(ptr align 1 %_1, ptr align 8 %_task_context) unnamed_addr #3 { 
         455: start: 
         456:  %0 = load i8, ptr %_1, align 1 
         457:  %_3 = zext i8 %0 to i32 
         458:  %1 = trunc nuw i32 %_3 to i1 
         459:  br i1 %1, label %bb2, label %bb1 
         460:  
         461: bb2: ; preds = %bb2, %start 
         462:  br i1 false, label %bb2, label %panic 
         463:  
         464: bb1: ; preds = %start 
         465:  store i8 1, ptr %_1, align 1 
         466:  ret i1 false 
         467:  
         468: panic: ; preds = %bb2 
         469: ; call core::panicking::panic_const::panic_const_async_fn_resumed 
         470:  call void @_ZN4core9panicking11panic_const28panic_const_async_fn_resumed17had9a2f420d578152E(ptr align 8 @alloc_9810ca03e7ce5512a14fc1c2f280e853) #8 
         471:  unreachable 
         472:  
         473: bb3: ; No predecessors! 
         474:  unreachable 
         475: } 
         476:  
         477: ; cold_attribute::closure 
         478: ; Function Attrs: nonlazybind uwtable 
         479: define void @_ZN14cold_attribute7closure17h025c0d2abf9012aaE() unnamed_addr #0 { 
         480: start: 
         481: ; call cold_attribute::closure::x 
         482:  call void @_ZN14cold_attribute7closure1x17h93974519e8023332E() 
         483:  ret void 
         484: } 
         485:  
         486: ; cold_attribute::closure::x 
         487: ; Function Attrs: nonlazybind uwtable 
         488: define internal void @_ZN14cold_attribute7closure1x17h93974519e8023332E() unnamed_addr #0 personality ptr @rust_eh_personality { 
         489: start: 
         490:  %0 = alloca [16 x i8], align 8 
         491:  %f = alloca [0 x i8], align 1 
         492: ; invoke cold_attribute::closure::{{closure}} 
         493:  invoke void @"_ZN14cold_attribute7closure28_$u7b$$u7b$closure$u7d$$u7d$17h1daa09e7d5f4f843E"(ptr align 1 %f) 
         494:  to label %bb1 unwind label %cleanup 
         495:  
         496: bb3: ; preds = %cleanup 
         497:  %1 = load ptr, ptr %0, align 8 
         498:  %2 = getelementptr inbounds i8, ptr %0, i64 8 
         499:  %3 = load i32, ptr %2, align 8 
         500:  %4 = insertvalue { ptr, i32 } poison, ptr %1, 0 
         501:  %5 = insertvalue { ptr, i32 } %4, i32 %3, 1 
         502:  resume { ptr, i32 } %5 
         503:  
         504: cleanup: ; preds = %start 
         505:  %6 = landingpad { ptr, i32 } 
         506:  cleanup 
         507:  %7 = extractvalue { ptr, i32 } %6, 0 
         508:  %8 = extractvalue { ptr, i32 } %6, 1 
         509:  store ptr %7, ptr %0, align 8 
         510:  %9 = getelementptr inbounds i8, ptr %0, i64 8 
         511:  store i32 %8, ptr %9, align 8 
         512:  br label %bb3 
         513:  
         514: bb1: ; preds = %start 
         515:  ret void 
         516: } 
         517:  
         518: ; cold_attribute::closure::{{closure}} 
         519: ; Function Attrs: cold inlinehint nonlazybind uwtable 
         520: define internal void @"_ZN14cold_attribute7closure28_$u7b$$u7b$closure$u7d$$u7d$17h1daa09e7d5f4f843E"(ptr align 1 %_1) unnamed_addr #3 { 
         521: start: 
         522:  ret void 
         523: } 
         524:  
         525: ; cold_attribute::S::method 
         526: ; Function Attrs: cold nonlazybind uwtable 
         527: define void @_ZN14cold_attribute1S6method17h65a7d943b9262840E(ptr align 1 %self) unnamed_addr #1 { 
         528: start: 
         529:  ret void 
         530: } 
         531:  
         532: ; cold_attribute::Trait::trait_fn 
         533: ; Function Attrs: cold nonlazybind uwtable 
         534: define void @_ZN14cold_attribute5Trait8trait_fn17hfdb84888b56f9fe3E(ptr align 1 %self) unnamed_addr #1 { 
         535: start: 
         536:  ret void 
         537: } 
         538:  
         539: ; <cold_attribute::S as cold_attribute::Trait>::impl_fn 
         540: ; Function Attrs: cold nonlazybind uwtable 
         541: define void @"_ZN59_$LT$cold_attribute..S$u20$as$u20$cold_attribute..Trait$GT$7impl_fn17he07edd1bf841af0dE"(ptr align 1 %self) unnamed_addr #1 { 
         542: start: 
         543: ; call cold_attribute::Trait::trait_fn 
         544:  call void @_ZN14cold_attribute5Trait8trait_fn17hfdb84888b56f9fe3E(ptr align 1 %self) 
         545:  ret void 
         546: } 
         547:  
         548: ; <cold_attribute::S as cold_attribute::Trait>::trait_fn_overridden 
next:74'0                                                                        X error: no match found
         549: ; Function Attrs: nonlazybind uwtable 
next:74'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         550: define void @"_ZN59_$LT$cold_attribute..S$u20$as$u20$cold_attribute..Trait$GT$19trait_fn_overridden17h5804df6e206fe68bE"(ptr align 1 %self) unnamed_addr #0 { 
next:74'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         551: start: 
next:74'0     ~~~~~~~
         552:  ret void 
next:74'0     ~~~~~~~~~~
         553: } 
next:74'0     ~~
         554:  
next:74'0     ~
         555: ; Function Attrs: nounwind nonlazybind uwtable 
next:74'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         556: declare i32 @rust_eh_personality(i32, i32, i64, ptr, ptr) unnamed_addr #4 
next:74'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         557:  
next:74'0     ~
         558: ; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: readwrite) 
next:74'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
next:74'1     ?                                                                                  possible intended match
         559: declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #5 
next:74'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         560:  
next:74'0     ~
         561: ; core::panicking::panic_const::panic_const_async_fn_resumed 
next:74'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         562: ; Function Attrs: cold noinline noreturn nonlazybind uwtable 
next:74'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         563: declare void @_ZN4core9panicking11panic_const28panic_const_async_fn_resumed17had9a2f420d578152E(ptr align 8) unnamed_addr #6 
next:74'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         564:  
next:74'0     ~
         565: ; core::panicking::panic_const::panic_const_async_fn_resumed_panic 
next:74'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         566: ; Function Attrs: cold noinline noreturn nonlazybind uwtable 
next:74'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         567: declare void @_ZN4core9panicking11panic_const34panic_const_async_fn_resumed_panic17h011983c5a5e8da01E(ptr align 8) unnamed_addr #6 
next:74'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         568:  
next:74'0     ~
         569: ; core::panicking::panic_in_cleanup 
next:74'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         570: ; Function Attrs: cold minsize noinline noreturn nounwind nonlazybind optsize uwtable 
next:74'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         571: declare void @_ZN4core9panicking16panic_in_cleanup17h65418a56830ce341E() unnamed_addr #7 
next:74'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         572:  
next:74'0     ~
         573: attributes #0 = { nonlazybind uwtable "probe-stack"="inline-asm" "target-cpu"="x86-64" } 
next:74'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         574: attributes #1 = { cold nonlazybind uwtable "probe-stack"="inline-asm" "target-cpu"="x86-64" } 
next:74'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         575: attributes #2 = { inlinehint nonlazybind uwtable "probe-stack"="inline-asm" "target-cpu"="x86-64" } 
next:74'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         576: attributes #3 = { cold inlinehint nonlazybind uwtable "probe-stack"="inline-asm" "target-cpu"="x86-64" } 
next:74'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         577: attributes #4 = { nounwind nonlazybind uwtable "probe-stack"="inline-asm" "target-cpu"="x86-64" } 
next:74'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         578: attributes #5 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) } 
next:74'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         579: attributes #6 = { cold noinline noreturn nonlazybind uwtable "probe-stack"="inline-asm" "target-cpu"="x86-64" } 
next:74'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         580: attributes #7 = { cold minsize noinline noreturn nounwind nonlazybind optsize uwtable "probe-stack"="inline-asm" "target-cpu"="x86-64" } 
next:74'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         581: attributes #8 = { noreturn } 
next:74'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         582: attributes #9 = { cold } 
next:74'0     ~~~~~~~~~~~~~~~~~~~~~~~~~
         583: attributes #10 = { cold noreturn nounwind } 
next:74'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         584:  
next:74'0     ~
         585: !llvm.module.flags = !{!0, !1} 
next:74'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         586: !llvm.ident = !{!2} 
next:74'0     ~~~~~~~~~~~~~~~~~~~~
         587:  
next:74'0     ~
         588: !0 = !{i32 8, !"PIC Level", i32 2} 
next:74'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         589: !1 = !{i32 2, !"RtLibUseGOT", i32 1} 
next:74'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         590: !2 = !{!"rustc version 1.92.0-nightly (111cf48fd 2025-10-08)"} 
next:74'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>>>>>>
------------------------------------------

---- [codegen] tests/codegen-llvm/cold-attribute.rs stdout end ----

@bors
Copy link
Collaborator

bors commented Oct 8, 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 Oct 8, 2025
@chenyukang
Copy link
Member

@bors retry

@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 Oct 9, 2025
@chenyukang
Copy link
Member

em, it's failed for: #147492 (comment)

pr: #147476

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-attributes Area: Attributes (`#[…]`, `#![…]`) A-run-make Area: port run-make Makefiles to rmake.rs rollup A PR which is a rollup S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. 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.
Projects
None yet
Development

Successfully merging this pull request may close these issues.