Skip to content

Conversation

@dianqk
Copy link
Member

@dianqk dianqk commented Jan 10, 2026

Fixes #150904.

The place may be modified from the comparison statement to the switchInt terminator.

Best reviewed commit by commit.

@rustbot
Copy link
Collaborator

rustbot commented Jan 10, 2026

Some changes occurred to MIR optimizations

cc @rust-lang/wg-mir-opt

@rustbot rustbot added 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. labels Jan 10, 2026
@rustbot
Copy link
Collaborator

rustbot commented Jan 10, 2026

r? @SparrowLii

rustbot has assigned @SparrowLii.
They will have a look at your PR within the next two weeks and either review your PR or reassign to another reviewer.

Use r? to explicitly pick a reviewer

@dianqk
Copy link
Member Author

dianqk commented Jan 10, 2026

r? @saethlin (I think you may be interested.)

@rustbot rustbot assigned saethlin and unassigned SparrowLii Jan 10, 2026
@dianqk dianqk 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 Jan 10, 2026
@dianqk dianqk added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. A-mir-opt Area: MIR optimizations and removed S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. labels Jan 10, 2026
@Noratrieb
Copy link
Member

Noratrieb commented Jan 10, 2026

#75370 (comment) is this still true? (edit: yes)

@Noratrieb
Copy link
Member

Looking at #75144 which suggested the pass it does look like it's beneficial for Cranelift but entirely useless for LLVM (also confirmed by https://godbolt.org/z/7jMsGjYvP).

I suggest we delete this pass and let Cranelift implement this optimization on their side, their ISLE framework should be much better suited for these transforms than our MIR opts.

@dianqk
Copy link
Member Author

dianqk commented Jan 10, 2026

I have no objection to removing this pass since it also isn't beneficial for other passes, but perhaps the pass can be removed after Cranelift implements the optimization. cc @bjorn3

@rust-log-analyzer

This comment has been minimized.

@saethlin
Copy link
Member

SsaLocals is not a trivial amount of analysis, so using it here will need a perf run.

But I agree that SsaLocals and removing the pass are the only real options here.

@Noratrieb
Copy link
Member

I have no objection to removing this pass since it also isn't beneficial for other passes, but perhaps the pass can be removed after Cranelift implements the optimization. cc @bjorn3

Given the current status of the Cranelift backend (not production ready) I see no reason to block removal on Cranelift implementing anything. That can happen at a later point just fine.

@bjorn3
Copy link
Member

bjorn3 commented Jan 10, 2026

If this pass is giving trouble, it is fine to remove it by me. I can implement a replacement in cg_clif if necessary, but no need to block on that.

@saethlin
Copy link
Member

@bors try @rust-timer queue

@rust-timer

This comment has been minimized.

@rust-bors
Copy link
Contributor

rust-bors bot commented Jan 10, 2026

🔒 Merge conflict

This pull request and the base branch diverged in a way that cannot
be automatically merged. Please rebase on top of the latest base
branch, and let the reviewer approve again.

How do I rebase?

Assuming self is your fork and upstream is this repository,
you can resolve the conflict following these steps:

  1. git checkout if-cmp (switch to your branch)
  2. git fetch upstream HEAD (retrieve the latest base branch)
  3. git rebase upstream/HEAD -p (rebase on top of it)
  4. Follow the on-screen instruction to resolve conflicts (check git status if you got lost).
  5. git push self if-cmp --force-with-lease (update this PR)

You may also read
Git Rebasing to Resolve Conflicts by Drew Blessing
for a short tutorial.

Please avoid the "Resolve conflicts" button on GitHub.
It uses git merge instead of git rebase which makes the PR commit history more difficult to read.

Sometimes step 4 will complete without asking for resolution. This is usually due to difference between how Cargo.lock conflict is
handled during merge and rebase. This is normal, and you should still perform step 5 to update this PR.

@rustbot rustbot added the S-waiting-on-perf Status: Waiting on a perf run to be completed. label Jan 10, 2026
@rustbot
Copy link
Collaborator

rustbot commented Jan 10, 2026

This PR was rebased onto a different main commit. Here's a range-diff highlighting what actually changed.

Rebasing is a normal part of keeping PRs up to date, so no action is needed—this note is just to help reviewers.

@rust-bors

This comment has been minimized.

@rust-log-analyzer
Copy link
Collaborator

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

Click to see the possible cause of the failure (guessed by this bot)
test [ui] tests/ui/imports/ambiguous-6.rs ... ok
test [ui] tests/ui/imports/ambiguous-4.rs ... ok
test [ui] tests/ui/imports/ambiguous-7.rs ... ok
test [ui] tests/ui/imports/ambiguous-9.rs ... ok
test [ui] tests/ui/imports/ambiguous-panic-glob-vs-multiouter.rs ... ok
test [ui] tests/ui/imports/ambiguous-panic-globvsglob.rs ... ok
test [ui] tests/ui/imports/ambiguous-panic-no-implicit-prelude.rs ... ok
test [ui] tests/ui/imports/ambiguous-8.rs ... ok
test [ui] tests/ui/imports/ambiguous-panic-non-prelude-core-glob.rs ... ok
test [ui] tests/ui/imports/ambiguous-glob-vs-expanded-extern.rs ... ok
test [ui] tests/ui/imports/ambiguous-panic-non-prelude-std-glob.rs ... ok
---

---- [codegen] tests/codegen-llvm/lib-optimizations/append-elements.rs stdout ----
------FileCheck stdout------------------------------

------FileCheck stderr------------------------------
/checkout/tests/codegen-llvm/lib-optimizations/append-elements.rs:25:12: error: CHECK: expected string not found in input
 // CHECK: call void @llvm.memcpy.{{.*}}%dst.i{{.*}}%src.0
           ^
/checkout/obj/build/x86_64-unknown-linux-gnu/test/codegen-llvm/lib-optimizations/append-elements/append-elements.ll:181:43: note: scanning from here
define void @string_append_with_temp_alloc(ptr noalias noundef align 8 captures(none) dereferenceable(24) %dst, ptr noalias noundef nonnull readonly align 1 captures(none) %src.0, i64 noundef %src.1) unnamed_addr #1 personality ptr @rust_eh_personality {
                                          ^
/checkout/obj/build/x86_64-unknown-linux-gnu/test/codegen-llvm/lib-optimizations/append-elements/append-elements.ll:228:4: note: possible intended match here
 tail call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %1, ptr nonnull align 1 %src.0, i64 %src.1, i1 false)
   ^

Input file: /checkout/obj/build/x86_64-unknown-linux-gnu/test/codegen-llvm/lib-optimizations/append-elements/append-elements.ll
Check file: /checkout/tests/codegen-llvm/lib-optimizations/append-elements.rs

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

Input was:
<<<<<<
            .
            .
            .
           81:  
           82: bb7: ; preds = %bb16 
           83:  %1 = icmp eq i64 %cap, 0 
           84:  br i1 %1, label %bb11, label %bb4.i.i 
           85:  
           86: bb4.i.i: ; preds = %bb7 
           87: ; call __rustc::__rust_no_alloc_shim_is_unstable_v2 
           88:  tail call void @_RNvCsf0JGDvSbhhU_7___rustc35___rust_no_alloc_shim_is_unstable_v2() #15 
           89: ; call __rustc::__rust_alloc 
           90:  %2 = tail call noundef ptr @_RNvCsf0JGDvSbhhU_7___rustc12___rust_alloc(i64 noundef %cap, i64 noundef range(i64 1, -9223372036854775807) 1) #15 
           91:  br label %bb9 
           92:  
           93: bb18: ; preds = %bb16 
           94:  %3 = icmp ne ptr %self.0.val, null 
           95:  tail call void @llvm.assume(i1 %3) 
           96:  %cond.not.i.i = icmp ult i64 %cap, %self.8.val 
           97:  br i1 %cond.not.i.i, label %bb2.i.i14, label %_RNvXs_NtCsi29MG4dhoEP_5alloc5allocNtB4_6GlobalNtNtCs1NSzHSk6l44_4core5alloc9Allocator4grow.exit, !prof !6 
           98:  
           99: bb2.i.i14: ; preds = %bb18 
          100: ; call core::panicking::panic_fmt 
          101:  tail call void @_RNvNtCs1NSzHSk6l44_4core9panicking9panic_fmt(ptr noundef nonnull @alloc_7e80d81941cf5c819e3db4cff23967f9, ptr noundef nonnull inttoptr (i64 145 to ptr), ptr noalias noundef readonly align 8 captures(address, read_provenance) dereferenceable(32) @alloc_15466ea635440d972405f2af6a5bc260) #13 
          102:  unreachable 
          103:  
          104: _RNvXs_NtCsi29MG4dhoEP_5alloc5allocNtB4_6GlobalNtNtCs1NSzHSk6l44_4core5alloc9Allocator4grow.exit: ; preds = %bb18 
          105: ; call __rustc::__rust_realloc 
          106:  %raw_ptr.i.i = tail call noundef ptr @_RNvCsf0JGDvSbhhU_7___rustc14___rust_realloc(ptr noundef nonnull %self.0.val, i64 noundef %self.8.val, i64 noundef range(i64 1, -9223372036854775807) 1, i64 noundef %cap) #15 
          107:  br label %bb9 
          108:  
          109: bb9: ; preds = %bb4.i.i, %_RNvXs_NtCsi29MG4dhoEP_5alloc5allocNtB4_6GlobalNtNtCs1NSzHSk6l44_4core5alloc9Allocator4grow.exit 
          110:  %raw_ptr.i.i.pn = phi ptr [ %raw_ptr.i.i, %_RNvXs_NtCsi29MG4dhoEP_5alloc5allocNtB4_6GlobalNtNtCs1NSzHSk6l44_4core5alloc9Allocator4grow.exit ], [ %2, %bb4.i.i ] 
          111:  %4 = icmp eq ptr %raw_ptr.i.i.pn, null 
          112:  br i1 %4, label %bb10, label %bb11 
          113:  
          114: bb10: ; preds = %bb9 
          115:  %5 = getelementptr inbounds nuw i8, ptr %_0, i64 8 
          116:  store i64 1, ptr %5, align 8 
          117:  br label %bb13 
          118:  
          119: bb11: ; preds = %bb7, %bb9 
          120:  %raw_ptr.i.i.pn8 = phi ptr [ %raw_ptr.i.i.pn, %bb9 ], [ inttoptr (i64 1 to ptr), %bb7 ] 
          121:  %6 = getelementptr inbounds nuw i8, ptr %_0, i64 8 
          122:  store ptr %raw_ptr.i.i.pn8, ptr %6, align 8 
          123:  br label %bb13 
          124:  
          125: bb13: ; preds = %start, %bb11, %bb10 
          126:  %.sink9 = phi i64 [ 16, %bb11 ], [ 16, %bb10 ], [ 8, %start ] 
          127:  %cap.sink = phi i64 [ %cap, %bb11 ], [ %cap, %bb10 ], [ 0, %start ] 
          128:  %storemerge9 = phi i64 [ 0, %bb11 ], [ 1, %bb10 ], [ 1, %start ] 
          129:  %7 = getelementptr inbounds nuw i8, ptr %_0, i64 %.sink9 
          130:  store i64 %cap.sink, ptr %7, align 8 
          131:  store i64 %storemerge9, ptr %_0, align 8 
          132:  ret void 
          133: } 
          134:  
          135: ; Function Attrs: nonlazybind uwtable 
          136: define void @vec_append_with_temp_alloc(ptr noalias noundef align 8 captures(none) dereferenceable(24) %dst, ptr noalias noundef nonnull readonly align 1 captures(none) %src.0, i64 noundef range(i64 0, -9223372036854775808) %src.1) unnamed_addr #1 personality ptr @rust_eh_personality { 
          137: start: 
          138:  %0 = icmp eq i64 %src.1, 0 
          139:  br i1 %0, label %bb10.thread, label %_RNvXs_NtCsi29MG4dhoEP_5alloc5allocNtB4_6GlobalNtNtCs1NSzHSk6l44_4core5alloc9Allocator8allocate.exit.i 
          140:  
          141: bb10.thread: ; preds = %start 
          142:  %len.i.i20 = load i64, ptr %dst, align 8, !alias.scope !12, !noundef !8 
          143:  %_11.i34 = icmp sgt i64 %len.i.i20, -1 
          144:  tail call void @llvm.assume(i1 %_11.i34) 
          145:  br label %_RINvNtCs1NSzHSk6l44_4core3ptr13drop_in_placeINtNtCsi29MG4dhoEP_5alloc3vec3VechEECslAzzQRh6qCt_15append_elements.exit7 
          146:  
          147: _RNvXs_NtCsi29MG4dhoEP_5alloc5allocNtB4_6GlobalNtNtCs1NSzHSk6l44_4core5alloc9Allocator8allocate.exit.i: ; preds = %start 
          148: ; call __rustc::__rust_no_alloc_shim_is_unstable_v2 
          149:  tail call void @_RNvCsf0JGDvSbhhU_7___rustc35___rust_no_alloc_shim_is_unstable_v2() #15, !noalias !17 
          150:  %len.i.i = load i64, ptr %dst, align 8, !alias.scope !20, !noundef !8 
          151:  %1 = getelementptr inbounds nuw i8, ptr %dst, i64 16 
          152:  %self3.i.i = load i64, ptr %1, align 8, !range !7, !alias.scope !20, !noundef !8 
          153:  %_9.i.i = sub i64 %self3.i.i, %len.i.i 
          154:  %_7.i.i = icmp ugt i64 %src.1, %_9.i.i 
          155:  br i1 %_7.i.i, label %_RNvMs_NtCsi29MG4dhoEP_5alloc3vecINtB4_3VechE7reserveCslAzzQRh6qCt_15append_elements.exit.thread.i, label %_RNvXs_NtCsi29MG4dhoEP_5alloc5allocNtB4_6GlobalNtNtCs1NSzHSk6l44_4core5alloc9Allocator10deallocate.exit.i.i.i4.i6, !prof !22 
          156:  
          157: _RNvMs_NtCsi29MG4dhoEP_5alloc3vecINtB4_3VechE7reserveCslAzzQRh6qCt_15append_elements.exit.thread.i: ; preds = %_RNvXs_NtCsi29MG4dhoEP_5alloc5allocNtB4_6GlobalNtNtCs1NSzHSk6l44_4core5alloc9Allocator8allocate.exit.i 
          158:  %self2.i.i = getelementptr inbounds nuw i8, ptr %dst, i64 8 
          159: ; call <alloc::raw_vec::RawVecInner<_>>::reserve::do_reserve_and_handle::<alloc::alloc::Global> 
          160:  tail call fastcc void @_RINvNvMs2_NtCsi29MG4dhoEP_5alloc7raw_vecINtB8_11RawVecInnerpE7reserve21do_reserve_and_handleNtNtBa_5alloc6GlobalECslAzzQRh6qCt_15append_elements(ptr noalias noundef align 8 dereferenceable(16) %self2.i.i, i64 noundef %len.i.i, i64 noundef %src.1) 
          161:  %len1.i = load i64, ptr %dst, align 8, !alias.scope !23, !noundef !8 
          162:  br label %_RNvXs_NtCsi29MG4dhoEP_5alloc5allocNtB4_6GlobalNtNtCs1NSzHSk6l44_4core5alloc9Allocator10deallocate.exit.i.i.i4.i6 
          163:  
          164: _RNvXs_NtCsi29MG4dhoEP_5alloc5allocNtB4_6GlobalNtNtCs1NSzHSk6l44_4core5alloc9Allocator10deallocate.exit.i.i.i4.i6: ; preds = %_RNvXs_NtCsi29MG4dhoEP_5alloc5allocNtB4_6GlobalNtNtCs1NSzHSk6l44_4core5alloc9Allocator8allocate.exit.i, %_RNvMs_NtCsi29MG4dhoEP_5alloc3vecINtB4_3VechE7reserveCslAzzQRh6qCt_15append_elements.exit.thread.i 
          165:  %len.i.i.sink = phi i64 [ %len1.i, %_RNvMs_NtCsi29MG4dhoEP_5alloc3vecINtB4_3VechE7reserveCslAzzQRh6qCt_15append_elements.exit.thread.i ], [ %len.i.i, %_RNvXs_NtCsi29MG4dhoEP_5alloc5allocNtB4_6GlobalNtNtCs1NSzHSk6l44_4core5alloc9Allocator8allocate.exit.i ] 
          166:  %_11.i = icmp sgt i64 %len.i.i.sink, -1 
          167:  tail call void @llvm.assume(i1 %_11.i) 
          168:  %2 = getelementptr inbounds nuw i8, ptr %dst, i64 8 
          169:  %_12.i = load ptr, ptr %2, align 8, !alias.scope !23, !nonnull !8, !noundef !8 
          170:  %dst.i = getelementptr inbounds nuw i8, ptr %_12.i, i64 %len.i.i.sink 
          171:  tail call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %dst.i, ptr nonnull align 1 %src.0, i64 %src.1, i1 false) 
          172:  %_10.0.i = add nuw i64 %len.i.i.sink, %src.1 
          173:  store i64 %_10.0.i, ptr %dst, align 8, !alias.scope !23 
          174:  br label %_RINvNtCs1NSzHSk6l44_4core3ptr13drop_in_placeINtNtCsi29MG4dhoEP_5alloc3vec3VechEECslAzzQRh6qCt_15append_elements.exit7 
          175:  
          176: _RINvNtCs1NSzHSk6l44_4core3ptr13drop_in_placeINtNtCsi29MG4dhoEP_5alloc3vec3VechEECslAzzQRh6qCt_15append_elements.exit7: ; preds = %bb10.thread, %_RNvXs_NtCsi29MG4dhoEP_5alloc5allocNtB4_6GlobalNtNtCs1NSzHSk6l44_4core5alloc9Allocator10deallocate.exit.i.i.i4.i6 
          177:  ret void 
          178: } 
          179:  
          180: ; Function Attrs: nonlazybind uwtable 
          181: define void @string_append_with_temp_alloc(ptr noalias noundef align 8 captures(none) dereferenceable(24) %dst, ptr noalias noundef nonnull readonly align 1 captures(none) %src.0, i64 noundef %src.1) unnamed_addr #1 personality ptr @rust_eh_personality { 
check:25'0                                               X~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ error: no match found
          182: start: 
check:25'0     ~~~~~~~
          183:  %_16.sroa.4 = alloca i64, align 8 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          184:  %_16.sroa.10 = alloca i64, align 8 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          185:  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_16.sroa.4) 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          186:  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_16.sroa.10) 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          187:  tail call void @llvm.experimental.noalias.scope.decl(metadata !24) 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          188:  %_25.i.i = icmp slt i64 %src.1, 0 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          189:  br i1 %_25.i.i, label %bb8, label %bb17.i, !prof !11 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          190:  
check:25'0     ~
          191: bb17.i: ; preds = %start 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~
          192:  %0 = icmp eq i64 %src.1, 0 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          193:  br i1 %0, label %bb10.thread, label %_RNvXs_NtCsi29MG4dhoEP_5alloc5allocNtB4_6GlobalNtNtCs1NSzHSk6l44_4core5alloc9Allocator8allocate.exit.i 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          194:  
check:25'0     ~
          195: bb10.thread: ; preds = %bb17.i 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          196:  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_16.sroa.4) 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          197:  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_16.sroa.10) 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          198:  %len.i.i.i.i23 = load i64, ptr %dst, align 8, !alias.scope !27, !noalias !36, !noundef !8 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          199:  %_11.i.i.i37 = icmp sgt i64 %len.i.i.i.i23, -1 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          200:  tail call void @llvm.assume(i1 %_11.i.i.i37) 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          201:  br label %_RINvNtCs1NSzHSk6l44_4core3ptr13drop_in_placeNtNtCsi29MG4dhoEP_5alloc6string6StringECslAzzQRh6qCt_15append_elements.exit5 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          202:  
check:25'0     ~
          203: _RNvXs_NtCsi29MG4dhoEP_5alloc5allocNtB4_6GlobalNtNtCs1NSzHSk6l44_4core5alloc9Allocator8allocate.exit.i: ; preds = %bb17.i 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          204: ; call __rustc::__rust_no_alloc_shim_is_unstable_v2 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          205:  tail call void @_RNvCsf0JGDvSbhhU_7___rustc35___rust_no_alloc_shim_is_unstable_v2() #15, !noalias !24 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          206: ; call __rustc::__rust_alloc 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          207:  %1 = tail call noundef ptr @_RNvCsf0JGDvSbhhU_7___rustc12___rust_alloc(i64 noundef %src.1, i64 noundef range(i64 1, -9223372036854775807) 1) #15, !noalias !24 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          208:  %2 = icmp eq ptr %1, null 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
          209:  br i1 %2, label %bb9.i, label %bb5 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          210:  
check:25'0     ~
          211: bb9.i: ; preds = %_RNvXs_NtCsi29MG4dhoEP_5alloc5allocNtB4_6GlobalNtNtCs1NSzHSk6l44_4core5alloc9Allocator8allocate.exit.i 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          212:  store i64 1, ptr %_16.sroa.4, align 8, !alias.scope !24 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          213:  br label %bb8 
check:25'0     ~~~~~~~~~~~~~~~
          214:  
check:25'0     ~
          215: bb8: ; preds = %bb9.i, %start 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          216:  %.sink7.i.sroa.phi.ph = phi ptr [ %_16.sroa.4, %start ], [ %_16.sroa.10, %bb9.i ] 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          217:  %capacity.sink.i.ph = phi i64 [ 0, %start ], [ %src.1, %bb9.i ] 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          218:  store i64 %capacity.sink.i.ph, ptr %.sink7.i.sroa.phi.ph, align 8, !alias.scope !24 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          219:  %_16.sroa.4.0._16.sroa.4.0._16.sroa.4.0._16.sroa.4.8._20.0 = load i64, ptr %_16.sroa.4, align 8, !range !10, !noundef !8 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          220:  %_16.sroa.10.0._16.sroa.10.0._16.sroa.10.0._16.sroa.10.16._20.1 = load i64, ptr %_16.sroa.10, align 8 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          221: ; call alloc::raw_vec::handle_error 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          222:  tail call void @_RNvNtCsi29MG4dhoEP_5alloc7raw_vec12handle_error(i64 noundef %_16.sroa.4.0._16.sroa.4.0._16.sroa.4.0._16.sroa.4.8._20.0, i64 %_16.sroa.10.0._16.sroa.10.0._16.sroa.10.0._16.sroa.10.16._20.1) #14 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          223:  unreachable 
check:25'0     ~~~~~~~~~~~~~
          224:  
check:25'0     ~
          225: bb5: ; preds = %_RNvXs_NtCsi29MG4dhoEP_5alloc5allocNtB4_6GlobalNtNtCs1NSzHSk6l44_4core5alloc9Allocator8allocate.exit.i 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          226:  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_16.sroa.4) 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          227:  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_16.sroa.10) 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          228:  tail call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %1, ptr nonnull align 1 %src.0, i64 %src.1, i1 false) 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
check:25'1        ?                                                                                                              possible intended match
          229:  tail call void @llvm.experimental.noalias.scope.decl(metadata !38) 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          230:  tail call void @llvm.experimental.noalias.scope.decl(metadata !40) 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          231:  tail call void @llvm.experimental.noalias.scope.decl(metadata !42) 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          232:  %len.i.i.i.i = load i64, ptr %dst, align 8, !alias.scope !44, !noalias !45, !noundef !8 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          233:  %3 = getelementptr inbounds nuw i8, ptr %dst, i64 16 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          234:  %self3.i.i.i.i = load i64, ptr %3, align 8, !range !7, !alias.scope !44, !noalias !45, !noundef !8 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          235:  %_9.i.i.i.i = sub i64 %self3.i.i.i.i, %len.i.i.i.i 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          236:  %_7.i.i.i.i = icmp ugt i64 %src.1, %_9.i.i.i.i 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          237:  br i1 %_7.i.i.i.i, label %_RNvMs_NtCsi29MG4dhoEP_5alloc3vecINtB4_3VechE7reserveCslAzzQRh6qCt_15append_elements.exit.thread.i.i.i, label %_RNvXs_NtCsi29MG4dhoEP_5alloc5allocNtB4_6GlobalNtNtCs1NSzHSk6l44_4core5alloc9Allocator10deallocate.exit.i.i.i4.i.i4, !prof !47 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          238:  
check:25'0     ~
          239: _RNvMs_NtCsi29MG4dhoEP_5alloc3vecINtB4_3VechE7reserveCslAzzQRh6qCt_15append_elements.exit.thread.i.i.i: ; preds = %bb5 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          240:  %self2.i.i.i.i = getelementptr inbounds nuw i8, ptr %dst, i64 8 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          241: ; invoke <alloc::raw_vec::RawVecInner<_>>::reserve::do_reserve_and_handle::<alloc::alloc::Global> 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          242:  invoke fastcc void @_RINvNvMs2_NtCsi29MG4dhoEP_5alloc7raw_vecINtB8_11RawVecInnerpE7reserve21do_reserve_and_handleNtNtBa_5alloc6GlobalECslAzzQRh6qCt_15append_elements(ptr noalias noundef align 8 dereferenceable(16) %self2.i.i.i.i, i64 noundef %len.i.i.i.i, i64 noundef range(i64 0, -9223372036854775808) %src.1) 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          243:  to label %.noexc unwind label %cleanup 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          244:  
check:25'0     ~
          245: .noexc: ; preds = %_RNvMs_NtCsi29MG4dhoEP_5alloc3vecINtB4_3VechE7reserveCslAzzQRh6qCt_15append_elements.exit.thread.i.i.i 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          246:  %len1.i.i.i = load i64, ptr %dst, align 8, !alias.scope !48, !noalias !45, !noundef !8 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          247:  br label %_RNvXs_NtCsi29MG4dhoEP_5alloc5allocNtB4_6GlobalNtNtCs1NSzHSk6l44_4core5alloc9Allocator10deallocate.exit.i.i.i4.i.i4 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          248:  
check:25'0     ~
          249: cleanup: ; preds = %_RNvMs_NtCsi29MG4dhoEP_5alloc3vecINtB4_3VechE7reserveCslAzzQRh6qCt_15append_elements.exit.thread.i.i.i 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          250:  %4 = landingpad { ptr, i32 } 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          251:  cleanup 
check:25'0     ~~~~~~~~~
          252: ; call __rustc::__rust_dealloc 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          253:  tail call void @_RNvCsf0JGDvSbhhU_7___rustc14___rust_dealloc(ptr noundef nonnull %1, i64 noundef %src.1, i64 noundef range(i64 1, -9223372036854775807) 1) #15 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          254:  resume { ptr, i32 } %4 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~
          255:  
check:25'0     ~
          256: _RNvXs_NtCsi29MG4dhoEP_5alloc5allocNtB4_6GlobalNtNtCs1NSzHSk6l44_4core5alloc9Allocator10deallocate.exit.i.i.i4.i.i4: ; preds = %bb5, %.noexc 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          257:  %len.i.i.i.i.sink = phi i64 [ %len1.i.i.i, %.noexc ], [ %len.i.i.i.i, %bb5 ] 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          258:  %_11.i.i.i = icmp sgt i64 %len.i.i.i.i.sink, -1 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          259:  tail call void @llvm.assume(i1 %_11.i.i.i) 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          260:  %5 = getelementptr inbounds nuw i8, ptr %dst, i64 8 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          261:  %_12.i.i.i = load ptr, ptr %5, align 8, !alias.scope !48, !noalias !45, !nonnull !8, !noundef !8 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          262:  %dst.i.i.i = getelementptr inbounds nuw i8, ptr %_12.i.i.i, i64 %len.i.i.i.i.sink 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          263:  tail call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %dst.i.i.i, ptr nonnull readonly align 1 %1, i64 range(i64 0, -9223372036854775808) %src.1, i1 false), !noalias !48 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          264:  %_10.0.i.i.i = add nuw i64 %len.i.i.i.i.sink, %src.1 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          265:  store i64 %_10.0.i.i.i, ptr %dst, align 8, !alias.scope !48, !noalias !45 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          266: ; call __rustc::__rust_dealloc 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          267:  tail call void @_RNvCsf0JGDvSbhhU_7___rustc14___rust_dealloc(ptr noundef nonnull %1, i64 noundef %src.1, i64 noundef range(i64 1, -9223372036854775807) 1) #15 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          268:  br label %_RINvNtCs1NSzHSk6l44_4core3ptr13drop_in_placeNtNtCsi29MG4dhoEP_5alloc6string6StringECslAzzQRh6qCt_15append_elements.exit5 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          269:  
check:25'0     ~
          270: _RINvNtCs1NSzHSk6l44_4core3ptr13drop_in_placeNtNtCsi29MG4dhoEP_5alloc6string6StringECslAzzQRh6qCt_15append_elements.exit5: ; preds = %bb10.thread, %_RNvXs_NtCsi29MG4dhoEP_5alloc5allocNtB4_6GlobalNtNtCs1NSzHSk6l44_4core5alloc9Allocator10deallocate.exit.i.i.i4.i.i4 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          271:  ret void 
check:25'0     ~~~~~~~~~~
          272: } 
check:25'0     ~~
          273:  
check:25'0     ~
          274: ; Function Attrs: nounwind nonlazybind uwtable 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          275: declare noundef range(i32 0, 10) i32 @rust_eh_personality(i32 noundef, i32 noundef, i64 noundef, ptr noundef, ptr noundef) unnamed_addr #2 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          276:  
check:25'0     ~
          277: ; Function Attrs: mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          278: declare void @llvm.lifetime.start.p0(i64 immarg, ptr captures(none)) #3 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          279:  
check:25'0     ~
          280: ; Function Attrs: mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          281: declare void @llvm.lifetime.end.p0(i64 immarg, ptr captures(none)) #3 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          282:  
check:25'0     ~
          283: ; alloc::raw_vec::handle_error 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          284: ; Function Attrs: cold minsize noreturn nonlazybind optsize uwtable 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          285: declare void @_RNvNtCsi29MG4dhoEP_5alloc7raw_vec12handle_error(i64 noundef range(i64 0, -9223372036854775807), i64) unnamed_addr #4 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          286:  
check:25'0     ~
          287: ; Function Attrs: mustprogress nocallback nofree nosync nounwind willreturn memory(inaccessiblemem: write) 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          288: declare void @llvm.assume(i1 noundef) #5 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          289:  
check:25'0     ~
          290: ; core::panicking::panic_fmt 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          291: ; Function Attrs: cold noinline noreturn nonlazybind uwtable 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          292: declare void @_RNvNtCs1NSzHSk6l44_4core9panicking9panic_fmt(ptr noundef nonnull, ptr noundef nonnull, ptr noalias noundef readonly align 8 captures(address, read_provenance) dereferenceable(32)) unnamed_addr #6 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          293:  
check:25'0     ~
          294: ; Function Attrs: mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          295: declare void @llvm.memcpy.p0.p0.i64(ptr noalias writeonly captures(none), ptr noalias readonly captures(none), i64, i1 immarg) #7 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          296:  
check:25'0     ~
          297: ; __rustc::__rust_dealloc 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~
          298: ; Function Attrs: nounwind nonlazybind allockind("free") uwtable 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          299: declare void @_RNvCsf0JGDvSbhhU_7___rustc14___rust_dealloc(ptr allocptr noundef captures(address), i64 noundef, i64 noundef) unnamed_addr #8 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          300:  
check:25'0     ~
          301: ; __rustc::__rust_realloc 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~
          302: ; Function Attrs: nounwind nonlazybind allockind("realloc,aligned") allocsize(3) uwtable 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          303: declare noalias noundef ptr @_RNvCsf0JGDvSbhhU_7___rustc14___rust_realloc(ptr allocptr noundef, i64 noundef, i64 allocalign noundef, i64 noundef) unnamed_addr #9 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          304:  
check:25'0     ~
          305: ; __rustc::__rust_no_alloc_shim_is_unstable_v2 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          306: ; Function Attrs: nounwind nonlazybind uwtable 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          307: declare void @_RNvCsf0JGDvSbhhU_7___rustc35___rust_no_alloc_shim_is_unstable_v2() unnamed_addr #2 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          308:  
check:25'0     ~
          309: ; __rustc::__rust_alloc 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~
          310: ; Function Attrs: nounwind nonlazybind allockind("alloc,uninitialized,aligned") allocsize(0) uwtable 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          311: declare noalias noundef ptr @_RNvCsf0JGDvSbhhU_7___rustc12___rust_alloc(i64 noundef, i64 allocalign noundef) unnamed_addr #10 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          312:  
check:25'0     ~
          313: ; core::panicking::panic 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~
          314: ; Function Attrs: cold noinline noreturn nonlazybind uwtable 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          315: declare void @_RNvNtCs1NSzHSk6l44_4core9panicking5panic(ptr noalias noundef nonnull readonly align 1 captures(address, read_provenance), i64 noundef, ptr noalias noundef readonly align 8 captures(address, read_provenance) dereferenceable(32)) unnamed_addr #6 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          316:  
check:25'0     ~
          317: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(inaccessiblemem: readwrite) 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          318: declare void @llvm.experimental.noalias.scope.decl(metadata) #11 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          319:  
check:25'0     ~
          320: ; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          321: declare i64 @llvm.umax.i64(i64, i64) #12 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          322:  
check:25'0     ~
          323: attributes #0 = { cold nonlazybind uwtable "probe-stack"="inline-asm" "target-cpu"="x86-64" } 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          324: attributes #1 = { nonlazybind uwtable "probe-stack"="inline-asm" "target-cpu"="x86-64" } 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          325: attributes #2 = { nounwind nonlazybind uwtable "probe-stack"="inline-asm" "target-cpu"="x86-64" } 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          326: attributes #3 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          327: attributes #4 = { cold minsize noreturn nonlazybind optsize uwtable "probe-stack"="inline-asm" "target-cpu"="x86-64" } 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          328: attributes #5 = { mustprogress nocallback nofree nosync nounwind willreturn memory(inaccessiblemem: write) } 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
            .
            .
            .
>>>>>>

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

error: verification with 'FileCheck' failed
status: exit status: 1
command: "/usr/lib/llvm-21/bin/FileCheck" "--input-file" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/codegen-llvm/lib-optimizations/append-elements/append-elements.ll" "/checkout/tests/codegen-llvm/lib-optimizations/append-elements.rs" "--check-prefix=CHECK" "--allow-unused-prefixes" "--dump-input-context" "100"
stdout: none
--- stderr -------------------------------
/checkout/tests/codegen-llvm/lib-optimizations/append-elements.rs:25:12: error: CHECK: expected string not found in input
 // CHECK: call void @llvm.memcpy.{{.*}}%dst.i{{.*}}%src.0
           ^
/checkout/obj/build/x86_64-unknown-linux-gnu/test/codegen-llvm/lib-optimizations/append-elements/append-elements.ll:181:43: note: scanning from here
define void @string_append_with_temp_alloc(ptr noalias noundef align 8 captures(none) dereferenceable(24) %dst, ptr noalias noundef nonnull readonly align 1 captures(none) %src.0, i64 noundef %src.1) unnamed_addr #1 personality ptr @rust_eh_personality {
                                          ^
/checkout/obj/build/x86_64-unknown-linux-gnu/test/codegen-llvm/lib-optimizations/append-elements/append-elements.ll:228:4: note: possible intended match here
 tail call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %1, ptr nonnull align 1 %src.0, i64 %src.1, i1 false)
   ^

Input file: /checkout/obj/build/x86_64-unknown-linux-gnu/test/codegen-llvm/lib-optimizations/append-elements/append-elements.ll
Check file: /checkout/tests/codegen-llvm/lib-optimizations/append-elements.rs

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

Input was:
<<<<<<
            .
            .
            .
           81:  
           82: bb7: ; preds = %bb16 
           83:  %1 = icmp eq i64 %cap, 0 
           84:  br i1 %1, label %bb11, label %bb4.i.i 
           85:  
           86: bb4.i.i: ; preds = %bb7 
           87: ; call __rustc::__rust_no_alloc_shim_is_unstable_v2 
           88:  tail call void @_RNvCsf0JGDvSbhhU_7___rustc35___rust_no_alloc_shim_is_unstable_v2() #15 
           89: ; call __rustc::__rust_alloc 
           90:  %2 = tail call noundef ptr @_RNvCsf0JGDvSbhhU_7___rustc12___rust_alloc(i64 noundef %cap, i64 noundef range(i64 1, -9223372036854775807) 1) #15 
           91:  br label %bb9 
           92:  
           93: bb18: ; preds = %bb16 
           94:  %3 = icmp ne ptr %self.0.val, null 
           95:  tail call void @llvm.assume(i1 %3) 
           96:  %cond.not.i.i = icmp ult i64 %cap, %self.8.val 
           97:  br i1 %cond.not.i.i, label %bb2.i.i14, label %_RNvXs_NtCsi29MG4dhoEP_5alloc5allocNtB4_6GlobalNtNtCs1NSzHSk6l44_4core5alloc9Allocator4grow.exit, !prof !6 
           98:  
           99: bb2.i.i14: ; preds = %bb18 
          100: ; call core::panicking::panic_fmt 
          101:  tail call void @_RNvNtCs1NSzHSk6l44_4core9panicking9panic_fmt(ptr noundef nonnull @alloc_7e80d81941cf5c819e3db4cff23967f9, ptr noundef nonnull inttoptr (i64 145 to ptr), ptr noalias noundef readonly align 8 captures(address, read_provenance) dereferenceable(32) @alloc_15466ea635440d972405f2af6a5bc260) #13 
          102:  unreachable 
          103:  
          104: _RNvXs_NtCsi29MG4dhoEP_5alloc5allocNtB4_6GlobalNtNtCs1NSzHSk6l44_4core5alloc9Allocator4grow.exit: ; preds = %bb18 
          105: ; call __rustc::__rust_realloc 
          106:  %raw_ptr.i.i = tail call noundef ptr @_RNvCsf0JGDvSbhhU_7___rustc14___rust_realloc(ptr noundef nonnull %self.0.val, i64 noundef %self.8.val, i64 noundef range(i64 1, -9223372036854775807) 1, i64 noundef %cap) #15 
          107:  br label %bb9 
          108:  
          109: bb9: ; preds = %bb4.i.i, %_RNvXs_NtCsi29MG4dhoEP_5alloc5allocNtB4_6GlobalNtNtCs1NSzHSk6l44_4core5alloc9Allocator4grow.exit 
          110:  %raw_ptr.i.i.pn = phi ptr [ %raw_ptr.i.i, %_RNvXs_NtCsi29MG4dhoEP_5alloc5allocNtB4_6GlobalNtNtCs1NSzHSk6l44_4core5alloc9Allocator4grow.exit ], [ %2, %bb4.i.i ] 
          111:  %4 = icmp eq ptr %raw_ptr.i.i.pn, null 
          112:  br i1 %4, label %bb10, label %bb11 
          113:  
          114: bb10: ; preds = %bb9 
          115:  %5 = getelementptr inbounds nuw i8, ptr %_0, i64 8 
          116:  store i64 1, ptr %5, align 8 
          117:  br label %bb13 
          118:  
          119: bb11: ; preds = %bb7, %bb9 
          120:  %raw_ptr.i.i.pn8 = phi ptr [ %raw_ptr.i.i.pn, %bb9 ], [ inttoptr (i64 1 to ptr), %bb7 ] 
          121:  %6 = getelementptr inbounds nuw i8, ptr %_0, i64 8 
          122:  store ptr %raw_ptr.i.i.pn8, ptr %6, align 8 
          123:  br label %bb13 
          124:  
          125: bb13: ; preds = %start, %bb11, %bb10 
          126:  %.sink9 = phi i64 [ 16, %bb11 ], [ 16, %bb10 ], [ 8, %start ] 

@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 Jan 15, 2026
@rust-bors
Copy link
Contributor

rust-bors bot commented Jan 15, 2026

💔 Test for 07d45e4 failed: CI. Failed jobs:

@Zalathar
Copy link
Member

@bors retry (known flaky test that is being reverted)

@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 Jan 15, 2026
rust-bors bot pushed a commit that referenced this pull request Jan 15, 2026
Revert "avoid phi node for pointers flowing into Vec appends #130998"

This reverts PR #130998 because the added test seems to be flaky / non-deterministic, and has been failing in unrelated PRs during merge CI:

- #151129 (comment)
- #150772 (comment)
- #150925 (comment)

See also [#t-infra > Tree ops](https://rust-lang.zulipchat.com/#narrow/channel/242791-t-infra/topic/Tree.20ops/with/568111767).

> [!NOTE]
>
> This is a "fallback" PR in case the FileCheck failure isn't obvious (i.e. fix-forward). This PR reverts #130998 wholesale in case the failure is genuine and indicative of a bug in the actual implementation change.
Zalathar added a commit to Zalathar/rust that referenced this pull request Jan 15, 2026
Revert "avoid phi node for pointers flowing into Vec appends rust-lang#130998"

This reverts PR rust-lang#130998 because the added test seems to be flaky / non-deterministic, and has been failing in unrelated PRs during merge CI:

- rust-lang#151129 (comment)
- rust-lang#150772 (comment)
- rust-lang#150925 (comment)
- rust-lang#151145 (comment)

See also [#t-infra > Tree ops](https://rust-lang.zulipchat.com/#narrow/channel/242791-t-infra/topic/Tree.20ops/with/568111767).

> [!NOTE]
>
> This is a "fallback" PR in case the FileCheck failure isn't obvious (i.e. fix-forward). This PR reverts rust-lang#130998 wholesale in case the failure is genuine and indicative of a bug in the actual implementation change.
rust-timer added a commit that referenced this pull request Jan 15, 2026
Rollup merge of #151150 - revert-vec-append, r=Zalathar

Revert "avoid phi node for pointers flowing into Vec appends #130998"

This reverts PR #130998 because the added test seems to be flaky / non-deterministic, and has been failing in unrelated PRs during merge CI:

- #151129 (comment)
- #150772 (comment)
- #150925 (comment)
- #151145 (comment)

See also [#t-infra > Tree ops](https://rust-lang.zulipchat.com/#narrow/channel/242791-t-infra/topic/Tree.20ops/with/568111767).

> [!NOTE]
>
> This is a "fallback" PR in case the FileCheck failure isn't obvious (i.e. fix-forward). This PR reverts #130998 wholesale in case the failure is genuine and indicative of a bug in the actual implementation change.
@rust-bors

This comment has been minimized.

rust-bors bot pushed a commit that referenced this pull request Jan 15, 2026
 Only use SSA locals in SimplifyComparisonIntegral

Fixes #150904.

The place may be modified from the comparison statement to the switchInt terminator.

Best reviewed commit by commit.
@rust-log-analyzer
Copy link
Collaborator

The job i686-msvc-1 failed! Check out the build log: (web) (plain enhanced) (plain)

Click to see the possible cause of the failure (guessed by this bot)
test [ui] tests\ui\imports\ambiguous-2.rs ... ok
test [ui] tests\ui\imports\ambiguous-7.rs ... ok
test [ui] tests\ui\imports\ambiguous-4.rs ... ok
test [ui] tests\ui\imports\ambiguous-9.rs ... ok
test [ui] tests\ui\imports\ambiguous-panic-glob-vs-multiouter.rs ... ok
test [ui] tests\ui\imports\ambiguous-panic-globvsglob.rs ... ok
test [ui] tests\ui\imports\ambiguous-panic-no-implicit-prelude.rs ... ok
test [ui] tests\ui\imports\ambiguous-panic-non-prelude-core-glob.rs ... ok
test [ui] tests\ui\imports\ambiguous-8.rs ... ok
test [ui] tests\ui\imports\ambiguous-glob-vs-expanded-extern.rs ... ok
test [ui] tests\ui\imports\ambiguous-panic-non-prelude-std-glob.rs ... ok
---
[TIMING:end] tool::Rustdoc { target_compiler: Compiler { stage: 2, host: i686-pc-windows-msvc, forced_compiler: false } } -- 0.002
##[group]Testing stage2 with compiletest suite=rustdoc-html mode=rustdoc-html (i686-pc-windows-msvc)

running 774 tests
test [rustdoc-html] tests\rustdoc-html\all.rs ... ok
test [rustdoc-html] tests\rustdoc-html\anchors\anchor-id-trait-method-15169.rs ... ok
test [rustdoc-html] tests\rustdoc-html\anchors\anchor-id-trait-tymethod-28478.rs ... ok
test [rustdoc-html] tests\rustdoc-html\anchors\anchor-id-duplicate-method-name-25001.rs ... ok
test [rustdoc-html] tests\rustdoc-html\anchors\disambiguate-anchors-32890.rs ... ok
test [rustdoc-html] tests\rustdoc-html\anchors\anchors.rs ... ok
test [rustdoc-html] tests\rustdoc-html\anchors\disambiguate-anchors-header-29449.rs ... ok
test [rustdoc-html] tests\rustdoc-html\anchors\method-anchor-in-blanket-impl-86620.rs ... ok
test [rustdoc-html] tests\rustdoc-html\anonymous-lifetime.rs ... ok
test [rustdoc-html] tests\rustdoc-html\anchors\trait-impl-items-links-and-anchors.rs ... ok
test [rustdoc-html] tests\rustdoc-html\asm-foreign2.rs ... ignored, only executed when the architecture is aarch64
test [rustdoc-html] tests\rustdoc-html\array-links.rs ... ok
test [rustdoc-html] tests\rustdoc-html\anon-fn-params.rs ... ok
test [rustdoc-html] tests\rustdoc-html\asref-for-and-of-local-82465.rs ... ok
test [rustdoc-html] tests\rustdoc-html\asm-foreign.rs ... ok
test [rustdoc-html] tests\rustdoc-html\assoc\assoc-fns.rs ... ok
test [rustdoc-html] tests\rustdoc-html\assoc\assoc-item-cast.rs ... ok
test [rustdoc-html] tests\rustdoc-html\assoc\assoc-types.rs ... ok
test [rustdoc-html] tests\rustdoc-html\assoc\assoc-type-bindings-20646.rs ... ok
test [rustdoc-html] tests\rustdoc-html\assoc\doc-assoc-item.rs ... ok
test [rustdoc-html] tests\rustdoc-html\assoc\cross-crate-hidden-assoc-trait-items.rs ... ok
test [rustdoc-html] tests\rustdoc-html\assoc\inline-assoc-type-20727-bindings.rs ... ok
test [rustdoc-html] tests\rustdoc-html\assoc\inline-assoc-type-20727-bounds-deref.rs ... ok
test [rustdoc-html] tests\rustdoc-html\assoc\inline-assoc-type-20727-bounds-index.rs ... ok
test [rustdoc-html] tests\rustdoc-html\assoc\inline-assoc-type-20727-bounds.rs ... ok
test [rustdoc-html] tests\rustdoc-html\async\async-move-doctest.rs ... ok
test [rustdoc-html] tests\rustdoc-html\async\async-fn-opaque-item.rs ... ok
test [rustdoc-html] tests\rustdoc-html\async\async-fn.rs ... ok
test [rustdoc-html] tests\rustdoc-html\async\async-trait-sig.rs ... ok
test [rustdoc-html] tests\rustdoc-html\attributes-2021-edition.rs ... ok
test [rustdoc-html] tests\rustdoc-html\assoc\normalize-assoc-item.rs ... ok
test [rustdoc-html] tests\rustdoc-html\async\async-trait.rs ... ok
test [rustdoc-html] tests\rustdoc-html\attributes-inlining-108281.rs ... ok
test [rustdoc-html] tests\rustdoc-html\attributes-re-export.rs ... ok
test [rustdoc-html] tests\rustdoc-html\attributes-re-export-2021-edition.rs ... ok
test [rustdoc-html] tests\rustdoc-html\attributes.rs ... ok
test [rustdoc-html] tests\rustdoc-html\auto\auto-impl-for-trait.rs ... ok
test [rustdoc-html] tests\rustdoc-html\auto\auto-trait-bounds-by-associated-type-50159.rs ... ok
test [rustdoc-html] tests\rustdoc-html\auto\auto-trait-bounds-inference-variables-54705.rs ... ok
test [rustdoc-html] tests\rustdoc-html\auto\auto-impl-primitive.rs ... ok
test [rustdoc-html] tests\rustdoc-html\auto\auto-trait-bounds-where-51236.rs ... ok
test [rustdoc-html] tests\rustdoc-html\auto\auto-trait-negative-impl-55321.rs ... ok
test [rustdoc-html] tests\rustdoc-html\auto\auto-trait-not-send.rs ... ok
test [rustdoc-html] tests\rustdoc-html\auto\auto-traits.rs ... ok
test [rustdoc-html] tests\rustdoc-html\auto\auto_aliases.rs ... ok
test [rustdoc-html] tests\rustdoc-html\bad-codeblock-syntax.rs ... ok
test [rustdoc-html] tests\rustdoc-html\blank-line-in-doc-block-47197.rs ... ok
test [rustdoc-html] tests\rustdoc-html\bold-tag-101743.rs ... ok
test [rustdoc-html] tests\rustdoc-html\bounds.rs ... ok
test [rustdoc-html] tests\rustdoc-html\cap-lints.rs ... ok
test [rustdoc-html] tests\rustdoc-html\cfg-bool.rs ... ok
test [rustdoc-html] tests\rustdoc-html\cfg-doctest.rs ... ok
test [rustdoc-html] tests\rustdoc-html\check-styled-link.rs ... ok
test [rustdoc-html] tests\rustdoc-html\comment-in-doctest.rs ... ok
test [rustdoc-html] tests\rustdoc-html\check.rs ... ok
test [rustdoc-html] tests\rustdoc-html\codeblock-title.rs ... ok
test [rustdoc-html] tests\rustdoc-html\const-fn-76501.rs ... ok
test [rustdoc-html] tests\rustdoc-html\const-fn-effects.rs ... ok
test [rustdoc-html] tests\rustdoc-html\const-fn.rs ... ok
test [rustdoc-html] tests\rustdoc-html\const-generics\add-impl.rs ... ok
test [rustdoc-html] tests\rustdoc-html\const-generics\const-generic-defaults.rs ... ok
test [rustdoc-html] tests\rustdoc-html\const-generics\const-generic-slice.rs ... ok
test [rustdoc-html] tests\rustdoc-html\const-generics\const-generics-docs.rs ... ok
test [rustdoc-html] tests\rustdoc-html\const-generics\const-impl.rs ... ok
test [rustdoc-html] tests\rustdoc-html\const-generics\const-param-type-references-generics.rs ... ok
test [rustdoc-html] tests\rustdoc-html\const-generics\generic_const_exprs.rs ... ok
test [rustdoc-html] tests\rustdoc-html\const-generics\type-alias.rs ... ok
test [rustdoc-html] tests\rustdoc-html\const-generics\lazy_normalization_consts\const-equate-pred.rs ... ok
test [rustdoc-html] tests\rustdoc-html\const-intrinsic.rs ... ok
test [rustdoc-html] tests\rustdoc-html\constant\assoc-consts-underscore.rs ... ok
test [rustdoc-html] tests\rustdoc-html\constant\assoc-consts-version.rs ... ok
test [rustdoc-html] tests\rustdoc-html\constant\assoc-consts.rs ... ok
test [rustdoc-html] tests\rustdoc-html\constant\associated-consts.rs ... ok
test [rustdoc-html] tests\rustdoc-html\constant\const-display.rs ... ok
test [rustdoc-html] tests\rustdoc-html\constant\const-doc.rs ... ok
test [rustdoc-html] tests\rustdoc-html\constant\const-effect-param.rs ... ok
test [rustdoc-html] tests\rustdoc-html\constant\const-trait-and-impl-methods.rs ... ok
test [rustdoc-html] tests\rustdoc-html\constant\const-underscore.rs ... ok
test [rustdoc-html] tests\rustdoc-html\constant\const-value-display.rs ... ok
test [rustdoc-html] tests\rustdoc-html\constant\const.rs ... ok
test [rustdoc-html] tests\rustdoc-html\constant\document-item-with-associated-const-in-where-clause.rs ... ok
test [rustdoc-html] tests\rustdoc-html\constant\generic-const-items.rs ... ok
test [rustdoc-html] tests\rustdoc-html\constant\generic_const_exprs.rs ... ok
test [rustdoc-html] tests\rustdoc-html\constant\glob-shadowing-const.rs ... ok
test [rustdoc-html] tests\rustdoc-html\constant\hide-complex-unevaluated-const-arguments.rs ... ok
test [rustdoc-html] tests\rustdoc-html\constant\hide-complex-unevaluated-consts.rs ... ok
test [rustdoc-html] tests\rustdoc-html\constant\ice-associated-const-equality-105952.rs ... ok
test [rustdoc-html] tests\rustdoc-html\constant\legacy-const-generic.rs ... ok
test [rustdoc-html] tests\rustdoc-html\constant\link-assoc-const.rs ... ok
test [rustdoc-html] tests\rustdoc-html\constant\redirect-const.rs ... ok
test [rustdoc-html] tests\rustdoc-html\constant\rfc-2632-const-trait-impl.rs ... ok
test [rustdoc-html] tests\rustdoc-html\constant\show-const-contents.rs ... ok
test [rustdoc-html] tests\rustdoc-html\constructor-imports.rs ... ok
test [rustdoc-html] tests\rustdoc-html\crate-doc-hidden-109695.rs ... ok
test [rustdoc-html] tests\rustdoc-html\crate-version-escape.rs ... ok
test [rustdoc-html] tests\rustdoc-html\crate-version-extra.rs ... ok
test [rustdoc-html] tests\rustdoc-html\crate-version.rs ... ok
test [rustdoc-html] tests\rustdoc-html\cross-crate-info\cargo-two-no-index\e.rs ... ok
test [rustdoc-html] tests\rustdoc-html\cross-crate-info\cargo-two\e.rs ... ok
test [rustdoc-html] tests\rustdoc-html\cross-crate-info\cargo-transitive-no-index\s.rs ... ok
test [rustdoc-html] tests\rustdoc-html\cross-crate-info\cargo-transitive\s.rs ... ok
test [rustdoc-html] tests\rustdoc-html\cross-crate-info\single-crate-baseline\q.rs ... ok
test [rustdoc-html] tests\rustdoc-html\cross-crate-info\index-on-last\e.rs ... ok
test [rustdoc-html] tests\rustdoc-html\cross-crate-info\single-crate-no-index\q.rs ... ok
test [rustdoc-html] tests\rustdoc-html\cross-crate-info\working-dir-examples\q.rs ... ok
test [rustdoc-html] tests\rustdoc-html\cross-crate-info\two\e.rs ... ok
test [rustdoc-html] tests\rustdoc-html\cross-crate-info\write-docs-somewhere-else\e.rs ... ok
test [rustdoc-html] tests\rustdoc-html\custom_code_classes.rs ... ok
test [rustdoc-html] tests\rustdoc-html\cross-crate-info\transitive\s.rs ... ok
test [rustdoc-html] tests\rustdoc-html\decl-trailing-whitespace.rs ... ok
test [rustdoc-html] tests\rustdoc-html\decl-line-wrapping-empty-arg-list.rs ... ok
test [rustdoc-html] tests\rustdoc-html\cross-crate-links.rs ... ok
test [rustdoc-html] tests\rustdoc-html\default-theme.rs ... ok
test [rustdoc-html] tests\rustdoc-html\deep-structures.rs ... ok
test [rustdoc-html] tests\rustdoc-html\default-trait-method-link.rs ... ok
test [rustdoc-html] tests\rustdoc-html\demo-allocator-54478.rs ... ok
test [rustdoc-html] tests\rustdoc-html\default-trait-method.rs ... ok
test [rustdoc-html] tests\rustdoc-html\deprecated-future-staged-api.rs ... ok
test [rustdoc-html] tests\rustdoc-html\deprecated-future.rs ... ok
test [rustdoc-html] tests\rustdoc-html\deprecated.rs ... ok
test [rustdoc-html] tests\rustdoc-html\deref-methods-19190-foreign-type.rs ... ok
test [rustdoc-html] tests\rustdoc-html\deref-methods-19190.rs ... ok
test [rustdoc-html] tests\rustdoc-html\deref-methods-19190-inline.rs ... ok
test [rustdoc-html] tests\rustdoc-html\deref-mut-35169-2.rs ... ok
test [rustdoc-html] tests\rustdoc-html\deref-mut-35169.rs ... ok
test [rustdoc-html] tests\rustdoc-html\deref\deref-const-fn.rs ... ok
test [rustdoc-html] tests\rustdoc-html\deref\deref-methods-24686-target.rs ... ok
test [rustdoc-html] tests\rustdoc-html\deref\deref-multiple-impl-blocks.rs ... ok
test [rustdoc-html] tests\rustdoc-html\deref\deref-mut-methods.rs ... ok
test [rustdoc-html] tests\rustdoc-html\deref\deref-recursive-pathbuf.rs ... ok
test [rustdoc-html] tests\rustdoc-html\deref\deref-slice-core.rs ... ok
test [rustdoc-html] tests\rustdoc-html\deref\deref-recursive.rs ... ok
test [rustdoc-html] tests\rustdoc-html\deref\deref-to-primitive.rs ... ok
test [rustdoc-html] tests\rustdoc-html\deref\deref-typedef.rs ... ok
test [rustdoc-html] tests\rustdoc-html\deref\escape-deref-methods.rs ... ok
test [rustdoc-html] tests\rustdoc-html\cross-crate-info\kitchen-sink\i.rs ... ok
test [rustdoc-html] tests\rustdoc-html\deref\recursive-deref-sidebar.rs ... ok
test [rustdoc-html] tests\rustdoc-html\deref\recursive-deref.rs ... ok
test [rustdoc-html] tests\rustdoc-html\deref\sidebar-links-deref-100679.rs ... ok
test [rustdoc-html] tests\rustdoc-html\description.rs ... ok
test [rustdoc-html] tests\rustdoc-html\description_default.rs ... ok
test [rustdoc-html] tests\rustdoc-html\display-hidden-items.rs ... ok
test [rustdoc-html] tests\rustdoc-html\doc-attr-comment-mix-42760.rs ... ok
test [rustdoc-html] tests\rustdoc-html\doc-attribute.rs ... ok
test [rustdoc-html] tests\rustdoc-html\doc-auto-cfg-public-in-private.rs ... ok
test [rustdoc-html] tests\rustdoc-html\doc-auto-cfg.rs ... ok
test [rustdoc-html] tests\rustdoc-html\doc-cfg\doc-cfg-hide.rs ... ok
test [rustdoc-html] tests\rustdoc-html\doc-cfg\doc-cfg-implicit-gate.rs ... ok
test [rustdoc-html] tests\rustdoc-html\doc-cfg\doc-cfg-target-feature.rs ... ignored, only executed when the architecture is x86_64
test [rustdoc-html] tests\rustdoc-html\doc-cfg\doc-cfg-implicit.rs ... ok
test [rustdoc-html] tests\rustdoc-html\doc-cfg\doc-cfg-inherit-from-module-79201.rs ... ok
test [rustdoc-html] tests\rustdoc-html\doc-cfg\doc-cfg-simplification.rs ... ok
test [rustdoc-html] tests\rustdoc-html\doc-cfg\doc-cfg-traits.rs ... ok
test [rustdoc-html] tests\rustdoc-html\doc-cfg\doc-cfg.rs ... ok
test [rustdoc-html] tests\rustdoc-html\doc-cfg\duplicate-cfg.rs ... ok
test [rustdoc-html] tests\rustdoc-html\doc-test-attr-18199.rs ... ok
test [rustdoc-html] tests\rustdoc-html\doc-on-keyword.rs ... ok
test [rustdoc-html] tests\rustdoc-html\doc-hidden-method-13698.rs ... ok
test [rustdoc-html] tests\rustdoc-html\doctest\doctest-cfg-feature-30252.rs ... ok
test [rustdoc-html] tests\rustdoc-html\doc_auto_cfg.rs ... ok
test [rustdoc-html] tests\rustdoc-html\doc_auto_cfg_reexports.rs ... ok
test [rustdoc-html] tests\rustdoc-html\doc-hidden-crate.rs ... ok
test [rustdoc-html] tests\rustdoc-html\doctest\doctest-hide-empty-line-23106.rs ... ok
test [rustdoc-html] tests\rustdoc-html\doctest\doctest-crate-attributes-38129.rs ... ok
test [rustdoc-html] tests\rustdoc-html\doctest\doctest-macro-38219.rs ... ok
test [rustdoc-html] tests\rustdoc-html\doctest\doctest-include-43153.rs ... ok
test [rustdoc-html] tests\rustdoc-html\doctest\doctest-escape-boring-41783.rs ... ok
test [rustdoc-html] tests\rustdoc-html\doctest\doctest-manual-crate-name.rs ... ok
test [rustdoc-html] tests\rustdoc-html\doctest\doctest-markdown-inline-parse-23744.rs ... ok
test [rustdoc-html] tests\rustdoc-html\doctest\doctest-markdown-trailing-docblock-48377.rs ... ok
test [rustdoc-html] tests\rustdoc-html\doctest\doctest-ignore-32556.rs ... ok
test [rustdoc-html] tests\rustdoc-html\doctest\doctest-multi-line-string-literal-25944.rs ... ok
test [rustdoc-html] tests\rustdoc-html\doctest\ignore-sometimes.rs ... ok
test [rustdoc-html] tests\rustdoc-html\double-hyphen-to-dash.rs ... ok
test [rustdoc-html] tests\rustdoc-html\document-hidden-items-15347.rs ... ok
test [rustdoc-html] tests\rustdoc-html\doctest\doctest-runtool.rs ... ok
test [rustdoc-html] tests\rustdoc-html\double-quote-escape.rs ... ok
test [rustdoc-html] tests\rustdoc-html\duplicate-flags.rs ... ok
test [rustdoc-html] tests\rustdoc-html\duplicate_impls\impls.rs ... ok
test [rustdoc-html] tests\rustdoc-html\duplicate_impls\sidebar-links-duplicate-impls-33054.rs ... ok
test [rustdoc-html] tests\rustdoc-html\edition-doctest.rs ... ok
test [rustdoc-html] tests\rustdoc-html\edition-flag.rs ... ok
test [rustdoc-html] tests\rustdoc-html\dyn-compatibility.rs ... ok
test [rustdoc-html] tests\rustdoc-html\early-unindent.rs ... ok
test [rustdoc-html] tests\rustdoc-html\empty-doc-comment.rs ... ok
test [rustdoc-html] tests\rustdoc-html\elided-lifetime.rs ... ok
test [rustdoc-html] tests\rustdoc-html\empty-mod-public.rs ... ok
test [rustdoc-html] tests\rustdoc-html\empty-section.rs ... ok
test [rustdoc-html] tests\rustdoc-html\empty-tuple-struct-118180.rs ... ok
test [rustdoc-html] tests\rustdoc-html\enum\enum-headings.rs ... ok
test [rustdoc-html] tests\rustdoc-html\enum\enum-non-exhaustive-108925.rs ... ok
test [rustdoc-html] tests\rustdoc-html\enum\enum-variant-doc-hidden-field-88600.rs ... ok
test [rustdoc-html] tests\rustdoc-html\enum\enum-variant-fields-heading.rs ... ok
test [rustdoc-html] tests\rustdoc-html\enum\enum-variant-non_exhaustive.rs ... ok
test [rustdoc-html] tests\rustdoc-html\enum\enum-variant-value.rs ... ok
test [rustdoc-html] tests\rustdoc-html\enum\strip-enum-variant.rs ... ok
test [rustdoc-html] tests\rustdoc-html\extern\duplicate-reexports-section-150211.rs ... ok
test [rustdoc-html] tests\rustdoc-html\enum\render-enum-variant-structlike-32395.rs ... ok
test [rustdoc-html] tests\rustdoc-html\extern\extern-default-method.rs ... ok
test [rustdoc-html] tests\rustdoc-html\extern\extern-fn-22038.rs ... ok
test [rustdoc-html] tests\rustdoc-html\extern\extern-html-alias.rs ... ok
test [rustdoc-html] tests\rustdoc-html\extern\extern-html-fallback.rs ... ok
test [rustdoc-html] tests\rustdoc-html\extern\extern-html-root-url-precedence.rs ... ok
test [rustdoc-html] tests\rustdoc-html\extern\extern-html-root-url.rs ... ok
test [rustdoc-html] tests\rustdoc-html\extern\extern-links.rs ... ok
test [rustdoc-html] tests\rustdoc-html\extern\extern-method.rs ... ok
test [rustdoc-html] tests\rustdoc-html\extern\external-cross.rs ... ok
test [rustdoc-html] tests\rustdoc-html\extern\external-doc.rs ... ok
test [rustdoc-html] tests\rustdoc-html\extern\hidden-extern-34025.rs ... ok
test [rustdoc-html] tests\rustdoc-html\extern\link-extern-crate-title-33178.rs ... ok
test [rustdoc-html] tests\rustdoc-html\extern\pub-extern-crate-150176.rs ... ok
test [rustdoc-html] tests\rustdoc-html\extern\link-extern-crate-item-30109.rs ... ok
test [rustdoc-html] tests\rustdoc-html\extern\unsafe-extern-blocks.rs ... ok
test [rustdoc-html] tests\rustdoc-html\extern\pub-extern-crate.rs ... ok
test [rustdoc-html] tests\rustdoc-html\extern\link-extern-crate-33178.rs ... ok
test [rustdoc-html] tests\rustdoc-html\extern\unused-extern-crate.rs ... ok
test [rustdoc-html] tests\rustdoc-html\file-creation-111249.rs ... ok
test [rustdoc-html] tests\rustdoc-html\extremely_long_typename.rs ... ok
test [rustdoc-html] tests\rustdoc-html\feature-gate-doc_auto_cfg.rs ... ok
test [rustdoc-html] tests\rustdoc-html\ffi.rs ... ok
test [rustdoc-html] tests\rustdoc-html\files-creation-hidden.rs ... ok
test [rustdoc-html] tests\rustdoc-html\fn-bound.rs ... ok
test [rustdoc-html] tests\rustdoc-html\fn-pointer-arg-name.rs ... ok
test [rustdoc-html] tests\rustdoc-html\fn-sidebar.rs ... ok
test [rustdoc-html] tests\rustdoc-html\fn-type.rs ... ok
test [rustdoc-html] tests\rustdoc-html\footnote-definition-without-blank-line-100638.rs ... ok
test [rustdoc-html] tests\rustdoc-html\footnote-ids.rs ... ok
test [rustdoc-html] tests\rustdoc-html\force-target-feature.rs ... ignored, only executed when the architecture is x86_64
test [rustdoc-html] tests\rustdoc-html\footnote-in-summary.rs ... ok
test [rustdoc-html] tests\rustdoc-html\footnote-reference-ids.rs ... ok
test [rustdoc-html] tests\rustdoc-html\footnote-reference-in-footnote-def.rs ... ok
test [rustdoc-html] tests\rustdoc-html\force-unstable-if-unmarked-106421-not-internal.rs ... ok
test [rustdoc-html] tests\rustdoc-html\foreigntype.rs ... ok
test [rustdoc-html] tests\rustdoc-html\force-unstable-if-unmarked-106421.rs ... ok
test [rustdoc-html] tests\rustdoc-html\generic-associated-types\gat-elided-lifetime-94683.rs ... ok
test [rustdoc-html] tests\rustdoc-html\generic-associated-types\gat-linkification-109488.rs ... ok
test [rustdoc-html] tests\rustdoc-html\generic-associated-types\gats.rs ... ok
test [rustdoc-html] tests\rustdoc-html\glob-shadowing.rs ... ok
test [rustdoc-html] tests\rustdoc-html\heading-levels-89309.rs ... ok
test [rustdoc-html] tests\rustdoc-html\heterogeneous-concat.rs ... ok
test [rustdoc-html] tests\rustdoc-html\hidden-line.rs ... ok
test [rustdoc-html] tests\rustdoc-html\hidden-methods.rs ... ok
test [rustdoc-html] tests\rustdoc-html\hidden-trait-methods-with-document-hidden-items.rs ... ok
test [rustdoc-html] tests\rustdoc-html\hidden-trait-methods.rs ... ok
test [rustdoc-html] tests\rustdoc-html\ice-type-error-19181.rs ... ok
test [rustdoc-html] tests\rustdoc-html\hide-unstable-trait.rs ... ok
test [rustdoc-html] tests\rustdoc-html\higher-ranked-trait-bounds.rs ... ok
test [rustdoc-html] tests\rustdoc-html\highlight-invalid-rust-12834.rs ... ok
test [rustdoc-html] tests\rustdoc-html\impl\blanket-impl-29503.rs ... ok
test [rustdoc-html] tests\rustdoc-html\impl\blanket-impl-78673.rs ... ok
test [rustdoc-html] tests\rustdoc-html\impl\cross-crate-hidden-impl-parameter.rs ... ok
test [rustdoc-html] tests\rustdoc-html\impl\deduplicate-glob-import-impl-21474.rs ... ok
test [rustdoc-html] tests\rustdoc-html\impl\deduplicate-trait-impl-22025.rs ... ok
test [rustdoc-html] tests\rustdoc-html\impl\deprecated-impls.rs ... ok
test [rustdoc-html] tests\rustdoc-html\impl\doc-hidden-trait-implementors-33069.rs ... ok
test [rustdoc-html] tests\rustdoc-html\impl\default-impl.rs ... ok
test [rustdoc-html] tests\rustdoc-html\impl\doc_auto_cfg_nested_impl.rs ... ok
test [rustdoc-html] tests\rustdoc-html\impl\duplicated_impl.rs ... ok
test [rustdoc-html] tests\rustdoc-html\impl\empty-impl-block.rs ... ok
test [rustdoc-html] tests\rustdoc-html\impl\empty-impls.rs ... ok
test [rustdoc-html] tests\rustdoc-html\impl\foreign-implementors-js-43701.rs ... ok
test [rustdoc-html] tests\rustdoc-html\impl\extern-impl.rs ... ok
test [rustdoc-html] tests\rustdoc-html\impl\generic-impl.rs ... ok
test [rustdoc-html] tests\rustdoc-html\impl\extern-impl-trait.rs ... ok
test [rustdoc-html] tests\rustdoc-html\impl\hidden-impls.rs ... ok
test [rustdoc-html] tests\rustdoc-html\impl\hidden-implementors-90781.rs ... ok
test [rustdoc-html] tests\rustdoc-html\impl\hidden-trait-struct-impls.rs ... ok
test [rustdoc-html] tests\rustdoc-html\impl\hide-mut-methods-if-no-derefmut-impl-74083.rs ... ok
test [rustdoc-html] tests\rustdoc-html\impl\impl-alias-substituted.rs ... ok
test [rustdoc-html] tests\rustdoc-html\impl\impl-associated-items-order.rs ... ok
test [rustdoc-html] tests\rustdoc-html\impl\impl-associated-items-sidebar.rs ... ok
test [rustdoc-html] tests\rustdoc-html\impl\impl-assoc-type-21092.rs ... ok
test [rustdoc-html] tests\rustdoc-html\impl\impl-box.rs ... ok
test [rustdoc-html] tests\rustdoc-html\impl\impl-disambiguation.rs ... ok
test [rustdoc-html] tests\rustdoc-html\impl\impl-blanket-53689.rs ... ok
test [rustdoc-html] tests\rustdoc-html\impl\impl-everywhere.rs ... ok
test [rustdoc-html] tests\rustdoc-html\impl\impl-on-ty-alias-issue-119015.rs ... ok
test [rustdoc-html] tests\rustdoc-html\impl\impl-in-const-block.rs ... ok
test [rustdoc-html] tests\rustdoc-html\impl\impl-parts-crosscrate.rs ... ok
test [rustdoc-html] tests\rustdoc-html\impl\impl-parts.rs ... ok
test [rustdoc-html] tests\rustdoc-html\impl\impl-ref-20175.rs ... ok
test [rustdoc-html] tests\rustdoc-html\impl\impl-trait-43869.rs ... ok
test [rustdoc-html] tests\rustdoc-html\impl\impl-trait-alias.rs ... ok
test [rustdoc-html] tests\rustdoc-html\impl\impl-trait-precise-capturing.rs ... ok
test [rustdoc-html] tests\rustdoc-html\impl\impl-type-parameter-33592.rs ... ok
test [rustdoc-html] tests\rustdoc-html\impl\implementor-stable-version.rs ... ok
test [rustdoc-html] tests\rustdoc-html\impl\implementors-unstable-75588.rs ... ok
test [rustdoc-html] tests\rustdoc-html\impl\manual_impl.rs ... ok
test [rustdoc-html] tests\rustdoc-html\impl\method-link-foreign-trait-impl-17476.rs ... ok
test [rustdoc-html] tests\rustdoc-html\impl\inline-impl-through-glob-import-100204.rs ... ok
test [rustdoc-html] tests\rustdoc-html\impl\module-impls.rs ... ok
test [rustdoc-html] tests\rustdoc-html\impl\must_implement_one_of.rs ... ok
test [rustdoc-html] tests\rustdoc-html\impl\negative-impl-no-items.rs ... ok
test [rustdoc-html] tests\rustdoc-html\impl\negative-impl-sidebar.rs ... ok
test [rustdoc-html] tests\rustdoc-html\impl\negative-impl.rs ... ok
test [rustdoc-html] tests\rustdoc-html\impl\return-impl-trait.rs ... ok
test [rustdoc-html] tests\rustdoc-html\impl\same-crate-hidden-impl-parameter.rs ... ok
test [rustdoc-html] tests\rustdoc-html\impl\sidebar-trait-impl-disambiguate-78701.rs ... ok
test [rustdoc-html] tests\rustdoc-html\impl\struct-implementations-title.rs ... ok
test [rustdoc-html] tests\rustdoc-html\impl\underscore-type-in-trait-impl-96381.rs ... ok
test [rustdoc-html] tests\rustdoc-html\impl\rustc-incoherent-impls.rs ... ok
test [rustdoc-html] tests\rustdoc-html\impl\trait-impl.rs ... ok
test [rustdoc-html] tests\rustdoc-html\impl\trait-implementations-duplicate-self-45584.rs ... ok
test [rustdoc-html] tests\rustdoc-html\impl\universal-impl-trait.rs ... ok
test [rustdoc-html] tests\rustdoc-html\impl\unneeded-trait-implementations-title.rs ... ok
test [rustdoc-html] tests\rustdoc-html\include_str_cut.rs ... ok
test [rustdoc-html] tests\rustdoc-html\impossible-default.rs ... ok
test [rustdoc-html] tests\rustdoc-html\import-remapped-paths.rs ... ok
test [rustdoc-html] tests\rustdoc-html\infinite-redirection-16265-1.rs ... ok
test [rustdoc-html] tests\rustdoc-html\infinite-redirection-16265-2.rs ... ok
test [rustdoc-html] tests\rustdoc-html\index-page.rs ... ok
test [rustdoc-html] tests\rustdoc-html\infinite-redirection.rs ... ok
test [rustdoc-html] tests\rustdoc-html\inherent-projections.rs ... ok
test [rustdoc-html] tests\rustdoc-html\inline-default-methods.rs ... ok
test [rustdoc-html] tests\rustdoc-html\inline-rename-34473.rs ... ok
test [rustdoc-html] tests\rustdoc-html\inline_cross\add-docs.rs ... ok
test [rustdoc-html] tests\rustdoc-html\inline_cross\assoc-const-equality.rs ... ok
test [rustdoc-html] tests\rustdoc-html\inline_cross\async-fn.rs ... ok
test [rustdoc-html] tests\rustdoc-html\inline_cross\attributes.rs ... ok
test [rustdoc-html] tests\rustdoc-html\inline_cross\assoc-items.rs ... ok
test [rustdoc-html] tests\rustdoc-html\inline_cross\assoc_item_trait_bounds.rs ... ok
test [rustdoc-html] tests\rustdoc-html\inline_cross\const-effect-param.rs ... ok
test [rustdoc-html] tests\rustdoc-html\inline_cross\const-eval-46727.rs ... ok
test [rustdoc-html] tests\rustdoc-html\inline_cross\const-fn-27362.rs ... ok
test [rustdoc-html] tests\rustdoc-html\inline_cross\deduplicate-inlined-items-23207.rs ... ok
test [rustdoc-html] tests\rustdoc-html\inline_cross\default-generic-args.rs ... ok
test [rustdoc-html] tests\rustdoc-html\inline_cross\default-trait-method.rs ... ok
test [rustdoc-html] tests\rustdoc-html\inline_cross\cross-glob.rs ... ok
test [rustdoc-html] tests\rustdoc-html\inline_cross\doc-auto-cfg.rs ... ok
test [rustdoc-html] tests\rustdoc-html\inline_cross\doc-hidden-extern-trait-impl-29584.rs ... ok
test [rustdoc-html] tests\rustdoc-html\inline_cross\doc-hidden-broken-link-28480.rs ... ok
test [rustdoc-html] tests\rustdoc-html\inline_cross\doc-reachability-impl-31948-1.rs ... ok
test [rustdoc-html] tests\rustdoc-html\inline_cross\doc-reachability-impl-31948-2.rs ... ok
test [rustdoc-html] tests\rustdoc-html\inline_cross\early-late-bound-lifetime-params.rs ... ok
test [rustdoc-html] tests\rustdoc-html\inline_cross\dyn_trait.rs ... ok
test [rustdoc-html] tests\rustdoc-html\inline_cross\doc-reachability-impl-31948.rs ... ok
test [rustdoc-html] tests\rustdoc-html\inline_cross\fn-ptr-ty.rs ... ok
test [rustdoc-html] tests\rustdoc-html\inline_cross\generic-const-items.rs ... ok
test [rustdoc-html] tests\rustdoc-html\inline_cross\ice-import-crate-57180.rs ... ok
test [rustdoc-html] tests\rustdoc-html\inline_cross\hidden-use.rs ... ok
test [rustdoc-html] tests\rustdoc-html\inline_cross\impl-dyn-trait-32881.rs ... ok
test [rustdoc-html] tests\rustdoc-html\inline_cross\impl-inline-without-trait.rs ... ok
test [rustdoc-html] tests\rustdoc-html\inline_cross\impl-sized.rs ... ok
test [rustdoc-html] tests\rustdoc-html\inline_cross\impl-ref-33113.rs ... ok
test [rustdoc-html] tests\rustdoc-html\inline_cross\impl_trait.rs ... ok
test [rustdoc-html] tests\rustdoc-html\inline_cross\implementors-js.rs ... ok
test [rustdoc-html] tests\rustdoc-html\inline_cross\inline_hidden.rs ... ok
test [rustdoc-html] tests\rustdoc-html\inline_cross\macro-vis.rs ... ok
test [rustdoc-html] tests\rustdoc-html\inline_cross\macros.rs ... ok
test [rustdoc-html] tests\rustdoc-html\inline_cross\non_lifetime_binders.rs ... ok
test [rustdoc-html] tests\rustdoc-html\inline_cross\reexport-with-anonymous-lifetime-98697.rs ... ok
test [rustdoc-html] tests\rustdoc-html\inline_cross\proc_macro.rs ... ok
test [rustdoc-html] tests\rustdoc-html\inline_cross\qpath-self-85454.rs ... ok
test [rustdoc-html] tests\rustdoc-html\inline_cross\renamed-via-module.rs ... ok
test [rustdoc-html] tests\rustdoc-html\inline_cross\ret-pos-impl-trait-in-trait.rs ... ok
test [rustdoc-html] tests\rustdoc-html\inline_cross\rustc-private-76736-1.rs ... ok
test [rustdoc-html] tests\rustdoc-html\inline_cross\rustc-private-76736-2.rs ... ok
test [rustdoc-html] tests\rustdoc-html\inline_cross\rustc-private-76736-4.rs ... ok
test [rustdoc-html] tests\rustdoc-html\inline_cross\rustc-private-76736-3.rs ... ok
test [rustdoc-html] tests\rustdoc-html\inline_cross\self-sized-bounds-24183.rs ... ok
test [rustdoc-html] tests\rustdoc-html\inline_cross\sugar-closure-crate-21801.rs ... ok
test [rustdoc-html] tests\rustdoc-html\inline_cross\trait-vis.rs ... ok
test [rustdoc-html] tests\rustdoc-html\inline_local\blanket-impl-reexported-trait-94183.rs ... ok
test [rustdoc-html] tests\rustdoc-html\inline_local\doc-no-inline-32343.rs ... ok
test [rustdoc-html] tests\rustdoc-html\inline_local\enum-variant-reexport-46766.rs ... ok
test [rustdoc-html] tests\rustdoc-html\inline_local\fully-stable-path-is-better.rs ... ok
test [rustdoc-html] tests\rustdoc-html\inline_local\glob-extern-document-private-items.rs ... ok
test [rustdoc-html] tests\rustdoc-html\inline_cross\use_crate.rs ... ok
test [rustdoc-html] tests\rustdoc-html\inline_local\glob-extern.rs ... ok
test [rustdoc-html] tests\rustdoc-html\inline_local\glob-private-document-private-items.rs ... ok
test [rustdoc-html] tests\rustdoc-html\inline_local\glob-private.rs ... ok
test [rustdoc-html] tests\rustdoc-html\inline_local\hidden-use.rs ... ok
test [rustdoc-html] tests\rustdoc-html\inline_local\macro_by_example.rs ... ok
test [rustdoc-html] tests\rustdoc-html\inline_local\parent-path-is-better.rs ... ok
test [rustdoc-html] tests\rustdoc-html\inline_local\please_inline.rs ... ok
test [rustdoc-html] tests\rustdoc-html\inline_local\private-reexport-in-public-api-81141-2.rs ... ok
test [rustdoc-html] tests\rustdoc-html\inline_local\private-reexport-in-public-api-81141.rs ... ok
test [rustdoc-html] tests\rustdoc-html\inline_local\private-reexport-in-public-api-generics-81141.rs ... ok
test [rustdoc-html] tests\rustdoc-html\inline_local\private-reexport-in-public-api-hidden-81141.rs ... ok
test [rustdoc-html] tests\rustdoc-html\inline_local\reexported-macro-and-macro-export-sidebar-89852.rs ... ok
test [rustdoc-html] tests\rustdoc-html\inline_local\private-reexport-in-public-api-private-81141.rs ... ok
test [rustdoc-html] tests\rustdoc-html\inline_local\pub-re-export-28537.rs ... ok
test [rustdoc-html] tests\rustdoc-html\inline_local\staged-inline.rs ... ok
test [rustdoc-html] tests\rustdoc-html\inline_local\trait-vis.rs ... ok
test [rustdoc-html] tests\rustdoc-html\internal.rs ... ok
test [rustdoc-html] tests\rustdoc-html\intra-doc\adt-through-alias.rs ... ok
test [rustdoc-html] tests\rustdoc-html\intra-doc\anchors.rs ... ok
test [rustdoc-html] tests\rustdoc-html\intra-doc\assoc-reexport-super.rs ... ok
test [rustdoc-html] tests\rustdoc-html\intra-doc-crate\self.rs ... ok
test [rustdoc-html] tests\rustdoc-html\intra-doc\associated-defaults.rs ... ok
test [rustdoc-html] tests\rustdoc-html\intra-doc\associated-items.rs ... ok
test [rustdoc-html] tests\rustdoc-html\intra-doc\basic.rs ... ok
test [rustdoc-html] tests\rustdoc-html\intra-doc\builtin-macros.rs ... ok
test [rustdoc-html] tests\rustdoc-html\intra-doc\crate-relative-assoc.rs ... ok
test [rustdoc-html] tests\rustdoc-html\intra-doc\crate-relative.rs ... ok
test [rustdoc-html] tests\rustdoc-html\intra-doc\cross-crate\additional_doc.rs ... ok
test [rustdoc-html] tests\rustdoc-html\intra-doc\cross-crate\basic.rs ... ok
test [rustdoc-html] tests\rustdoc-html\intra-doc\cross-crate\crate.rs ... ok
test [rustdoc-html] tests\rustdoc-html\intra-doc\cross-crate\hidden.rs ... ok
test [rustdoc-html] tests\rustdoc-html\intra-doc\cross-crate\submodule-outer.rs ... ok
test [rustdoc-html] tests\rustdoc-html\intra-doc\cross-crate\module.rs ... ok
test [rustdoc-html] tests\rustdoc-html\intra-doc\cross-crate\submodule-inner.rs ... ok
test [rustdoc-html] tests\rustdoc-html\intra-doc\deprecated.rs ... ok
test [rustdoc-html] tests\rustdoc-html\intra-doc\deps.rs ... ok
test [rustdoc-html] tests\rustdoc-html\intra-doc\cross-crate\macro.rs ... ok
test [rustdoc-html] tests\rustdoc-html\intra-doc\cross-crate\traits.rs ... ok
test [rustdoc-html] tests\rustdoc-html\intra-doc\disambiguators-removed.rs ... ok
test [rustdoc-html] tests\rustdoc-html\intra-doc\email-address.rs ... ok
test [rustdoc-html] tests\rustdoc-html\intra-doc\enum-self-82209.rs ... ok
test [rustdoc-html] tests\rustdoc-html\intra-doc\enum-struct-field.rs ... ok
test [rustdoc-html] tests\rustdoc-html\intra-doc\extern-builtin-type-impl.rs ... ok
test [rustdoc-html] tests\rustdoc-html\intra-doc\extern-crate.rs ... ok
test [rustdoc-html] tests\rustdoc-html\intra-doc\extern-inherent-impl.rs ... ok
test [rustdoc-html] tests\rustdoc-html\intra-doc\extern-reference-link.rs ... ok
test [rustdoc-html] tests\rustdoc-html\intra-doc\extern-type.rs ... ok
test [rustdoc-html] tests\rustdoc-html\intra-doc\field.rs ... ok
test [rustdoc-html] tests\rustdoc-html\intra-doc\external-traits.rs ... ok
test [rustdoc-html] tests\rustdoc-html\intra-doc\filter-out-private.rs ... ok
test [rustdoc-html] tests\rustdoc-html\intra-doc\generic-params.rs ... ok
test [rustdoc-html] tests\rustdoc-html\intra-doc\generic-trait-impl.rs ... ok
test [rustdoc-html] tests\rustdoc-html\intra-doc\ice-intra-doc-links-107995.rs ... ok
test [rustdoc-html] tests\rustdoc-html\intra-doc\in-bodies.rs ... ok
test [rustdoc-html] tests\rustdoc-html\intra-doc\inherent-associated-types.rs ... ok
test [rustdoc-html] tests\rustdoc-html\intra-doc\extern-crate-only-used-in-link.rs ... ok
test [rustdoc-html] tests\rustdoc-html\intra-doc\intra-doc-link-method-trait-impl-72340.rs ... ok
test [rustdoc-html] tests\rustdoc-html\intra-doc\link-in-footnotes-132208.rs ... ok
test [rustdoc-html] tests\rustdoc-html\intra-doc\link-same-name-different-disambiguator-108459.rs ... ok
test [rustdoc-html] tests\rustdoc-html\intra-doc\link-to-proc-macro.rs ... ok
test [rustdoc-html] tests\rustdoc-html\intra-doc\macro-caching-144965.rs ... ok
test [rustdoc-html] tests\rustdoc-html\intra-doc\macros-disambiguators.rs ... ok
test [rustdoc-html] tests\rustdoc-html\intra-doc\mod-ambiguity.rs ... ok
test [rustdoc-html] tests\rustdoc-html\intra-doc\mod-relative.rs ... ok
test [rustdoc-html] tests\rustdoc-html\intra-doc\no-doc-primitive.rs ... ok
test [rustdoc-html] tests\rustdoc-html\intra-doc\module-scope-name-resolution-55364.rs ... ok
test [rustdoc-html] tests\rustdoc-html\intra-doc\nested-use.rs ... ok
test [rustdoc-html] tests\rustdoc-html\intra-doc\non-path-primitives.rs ... ok
test [rustdoc-html] tests\rustdoc-html\intra-doc\prim-methods-external-core.rs ... ignored, only executed when the operating system is linux
test [rustdoc-html] tests\rustdoc-html\intra-doc\prim-assoc.rs ... ok
test [rustdoc-html] tests\rustdoc-html\intra-doc\prim-methods-local.rs ... ok
test [rustdoc-html] tests\rustdoc-html\intra-doc\prim-associated-traits.rs ... ok
test [rustdoc-html] tests\rustdoc-html\intra-doc\prim-self.rs ... ok
test [rustdoc-html] tests\rustdoc-html\intra-doc\prim-methods.rs ... ok
test [rustdoc-html] tests\rustdoc-html\intra-doc\prim-precedence.rs ... ok
test [rustdoc-html] tests\rustdoc-html\intra-doc\primitive-disambiguators.rs ... ok
test [rustdoc-html] tests\rustdoc-html\intra-doc\primitive-non-default-impl.rs ... ok
test [rustdoc-html] tests\rustdoc-html\intra-doc\private-failures-ignored.rs ... ok
test [rustdoc-html] tests\rustdoc-html\intra-doc\private.rs ... ok
test [rustdoc-html] tests\rustdoc-html\intra-doc\pub-use.rs ... ok
test [rustdoc-html] tests\rustdoc-html\intra-doc\raw-ident-self.rs ... ok
test [rustdoc-html] tests\rustdoc-html\intra-doc\proc-macro.rs ... ok
test [rustdoc-html] tests\rustdoc-html\intra-doc\same-name-different-crates-66159.rs ... ok
test [rustdoc-html] tests\rustdoc-html\intra-doc\reexport-additional-docs.rs ... ok
test [rustdoc-html] tests\rustdoc-html\intra-doc\self-cache.rs ... ok
test [rustdoc-html] tests\rustdoc-html\intra-doc\self.rs ... ok
test [rustdoc-html] tests\rustdoc-html\intra-doc\trait-impl.rs ... ok
test [rustdoc-html] tests\rustdoc-html\intra-doc\libstd-re-export.rs ... ok
test [rustdoc-html] tests\rustdoc-html\intra-doc\trait-item.rs ... ok
test [rustdoc-html] tests\rustdoc-html\intra-doc\true-false.rs ... ok
test [rustdoc-html] tests\rustdoc-html\intra-doc\type-alias-primitive.rs ... ok
test [rustdoc-html] tests\rustdoc-html\intra-doc\type-alias.rs ... ok
test [rustdoc-html] tests\rustdoc-html\invalid$crate$name.rs ... ok
test [rustdoc-html] tests\rustdoc-html\item-desc-list-at-start.rs ... ok
test [rustdoc-html] tests\rustdoc-html\jump-to-def\assoc-items.rs ... ok
test [rustdoc-html] tests\rustdoc-html\jump-to-def\assoc-types.rs ... ok
test [rustdoc-html] tests\rustdoc-html\jump-to-def\derive-macro.rs ... ok
test [rustdoc-html] tests\rustdoc-html\jump-to-def\doc-links-calls.rs ... ok
test [rustdoc-html] tests\rustdoc-html\jump-to-def\doc-links.rs ... ok
test [rustdoc-html] tests\rustdoc-html\jump-to-def\no-body-items.rs ... ok
test [rustdoc-html] tests\rustdoc-html\jump-to-def\non-local-method.rs ... ok
test [rustdoc-html] tests\rustdoc-html\jump-to-def\patterns.rs ... ok
test [rustdoc-html] tests\rustdoc-html\jump-to-def\macro.rs ... ok
test [rustdoc-html] tests\rustdoc-html\jump-to-def\prelude-types.rs ... ok
test [rustdoc-html] tests\rustdoc-html\jump-to-def\shebang.rs ... ok
test [rustdoc-html] tests\rustdoc-html\keyword.rs ... ok
test [rustdoc-html] tests\rustdoc-html\lifetime-name.rs ... ok
test [rustdoc-html] tests\rustdoc-html\line-breaks.rs ... ok
test [rustdoc-html] tests\rustdoc-html\link-on-path-with-generics.rs ... ok
test [rustdoc-html] tests\rustdoc-html\link-title-escape.rs ... ok
test [rustdoc-html] tests\rustdoc-html\links-in-headings.rs ... ok
test [rustdoc-html] tests\rustdoc-html\logo-class-default.rs ... ok
test [rustdoc-html] tests\rustdoc-html\logo-class-rust.rs ... ok
test [rustdoc-html] tests\rustdoc-html\logo-class.rs ... ok
test [rustdoc-html] tests\rustdoc-html\macro-expansion\field-followed-by-exclamation.rs ... ok
test [rustdoc-html] tests\rustdoc-html\macro-expansion\type-macro-expansion.rs ... ok
test [rustdoc-html] tests\rustdoc-html\macro\const-rendering-macros-33302.rs ... ok
test [rustdoc-html] tests\rustdoc-html\macro\decl_macro.rs ... ok
test [rustdoc-html] tests\rustdoc-html\macro\decl_macro_priv.rs ... ok
test [rustdoc-html] tests\rustdoc-html\macro\doc-proc-macro.rs ... ok
test [rustdoc-html] tests\rustdoc-html\macro\macro-const-display-115295.rs ... ok
test [rustdoc-html] tests\rustdoc-html\macro\macro-doc-comment-23812.rs ... ok
test [rustdoc-html] tests\rustdoc-html\macro\macro-export-crate-root-108231.rs ... ok
test [rustdoc-html] tests\rustdoc-html\macro\macro-generated-macro.rs ... ok
test [rustdoc-html] tests\rustdoc-html\macro\macro-higher-kinded-function.rs ... ok
test [rustdoc-html] tests\rustdoc-html\macro\macro-ice-16019.rs ... ok
test [rustdoc-html] tests\rustdoc-html\macro\macro-in-async-block.rs ... ok
test [rustdoc-html] tests\rustdoc-html\macro\macro-in-closure.rs ... ok
---
test library\std\src\collections\hash\map.rs - collections::hash::map::HashMap<K,V,RandomState,A>::with_capacity_in (line 323) ... ok
test library\std\src\collections\hash\map.rs - collections::hash::map::HashMap<K,V,RandomState>::new (line 264) ... ok
test library\std\src\collections\hash\map.rs - collections::hash::map::HashMap<K,V,RandomState>::from (line 1503) ... ok
test library\std\src\collections\hash\map.rs - collections::hash::map::HashMap<K,V,RandomState>::with_capacity (line 283) ... ok
test library\std\src\collections\hash\map.rs - collections::hash::map::HashMap<K,V,S,A>::capacity (line 445) ... ok
test library\std\src\collections\hash\map.rs - collections::hash::map::HashMap<K,V,S,A>::clear (line 819) ... ok
test library\std\src\collections\hash\map.rs - collections::hash::map::HashMap<K,V,S,A>::contains_key (line 1220) ... ok
test library\std\src\collections\hash\map.rs - collections::hash::map::HashMap<K,V,S,A>::drain (line 721) ... ok
test library\std\src\collections\hash\map.rs - collections::hash::map::HashMap<K,V,S,A>::entry (line 959) ... ok
test library\std\src\collections\hash\map.rs - collections::hash::map::HashMap<K,V,S,A>::get (line 987) ... ok
test library\std\src\collections\hash\map.rs - collections::hash::map::HashMap<K,V,S,A>::get_disjoint_mut (line 1077) ... ok
test library\std\src\collections\hash\map.rs - collections::hash::map::HashMap<K,V,S,A>::extract_if (line 761) ... ok
test library\std\src\collections\hash\map.rs - collections::hash::map::HashMap<K,V,S,A>::get_disjoint_mut (line 1119) ... ok
test library\std\src\collections\hash\map.rs - collections::hash::map::HashMap<K,V,S,A>::hasher (line 837) ... ok
test library\std\src\collections\hash\map.rs - collections::hash::map::HashMap<K,V,S,A>::get_mut (line 1247) ... ok
test library\std\src\collections\hash\map.rs - collections::hash::map::HashMap<K,V,S,A>::get_disjoint_unchecked_mut (line 1162) ... ok
test library\std\src\collections\hash\map.rs - collections::hash::map::HashMap<K,V,S,A>::get_key_value (line 1017) ... ok
test library\std\src\collections\hash\map.rs - collections::hash::map::HashMap<K,V,S,A>::insert (line 1280) ... ok
test library\std\src\collections\hash\map.rs - collections::hash::map::HashMap<K,V,S,A>::into_iter (line 2052) ... ok
test library\std\src\collections\hash\map.rs - collections::hash::map::HashMap<K,V,S,A>::into_keys (line 491) ... ok
test library\std\src\collections\hash\map.rs - collections::hash::map::HashMap<K,V,S,A>::into_values (line 586) ... ok
test library\std\src\collections\hash\map.rs - collections::hash::map::HashMap<K,V,S,A>::is_empty (line 698) ... ok
test library\std\src\collections\hash\map.rs - collections::hash::map::HashMap<K,V,S,A>::iter (line 618) ... ok
test library\std\src\collections\hash\map.rs - collections::hash::map::HashMap<K,V,S,A>::iter_mut (line 648) ... ok
test library\std\src\collections\hash\map.rs - collections::hash::map::HashMap<K,V,S,A>::keys (line 461) ... ok
test library\std\src\collections\hash\map.rs - collections::hash::map::HashMap<K,V,S,A>::len (line 681) ... ok
test library\std\src\collections\hash\map.rs - collections::hash::map::HashMap<K,V,S,A>::remove (line 1339) ... ok
test library\std\src\collections\hash\map.rs - collections::hash::map::HashMap<K,V,S,A>::reserve (line 870) ... ok
test library\std\src\collections\hash\map.rs - collections::hash::map::HashMap<K,V,S,A>::remove_entry (line 1367) ... ok
test library\std\src\collections\hash\map.rs - collections::hash::map::HashMap<K,V,S,A>::retain (line 792) ... ok
test library\std\src\collections\hash\map.rs - collections::hash::map::HashMap<K,V,S,A>::shrink_to (line 937) ... ok
test library\std\src\collections\hash\map.rs - collections::hash::map::HashMap<K,V,S,A>::shrink_to_fit (line 913) ... ok
test library\std\src\collections\hash\map.rs - collections::hash::map::HashMap<K,V,S,A>::try_insert (line 1309) ... ok
test library\std\src\collections\hash\map.rs - collections::hash::map::HashMap<K,V,S,A>::try_reserve (line 895) ... ok
test library\std\src\collections\hash\map.rs - collections::hash::map::HashMap<K,V,S,A>::values (line 523) ... ok
test library\std\src\collections\hash\map.rs - collections::hash::map::HashMap<K,V,S>::with_capacity_and_hasher (line 383) ... ok
test library\std\src\collections\hash\map.rs - collections::hash::map::HashMap<K,V,S,A>::values_mut (line 552) ... ok
test library\std\src\collections\hash\map.rs - collections::hash::map::HashMap<K,V,S>::with_hasher (line 351) ... ok
test library\std\src\collections\hash\map.rs - collections::hash::map::IntoIter (line 1610) ... ok
test library\std\src\collections\hash\map.rs - collections::hash::map::IntoKeys (line 1842) ... ok
---
test library\std\src\collections\hash\set.rs - collections::hash::set::HashSet<T,RandomState>::new (line 142) ... ok
test library\std\src\collections\hash\set.rs - collections::hash::set::HashSet<T,RandomState>::with_capacity (line 161) ... ok
test library\std\src\collections\hash\set.rs - collections::hash::set::HashSet<T,S,A>::capacity (line 313) ... ok
test library\std\src\collections\hash\set.rs - collections::hash::set::HashSet<T,RandomState>::from (line 1180) ... ok
test library\std\src\collections\hash\set.rs - collections::hash::set::HashSet<T,S,A>::clear (line 490) ... ok
test library\std\src\collections\hash\set.rs - collections::hash::set::HashSet<T,S,A>::contains (line 758) ... ok
test library\std\src\collections\hash\set.rs - collections::hash::set::HashSet<T,S,A>::drain (line 398) ... ok
test library\std\src\collections\hash\set.rs - collections::hash::set::HashSet<T,S,A>::difference (line 630) ... ok
test library\std\src\collections\hash\set.rs - collections::hash::set::HashSet<T,S,A>::entry (line 861) ... ok
test library\std\src\collections\hash\set.rs - collections::hash::set::HashSet<T,S,A>::extract_if (line 434) ... ok
test library\std\src\collections\hash\set.rs - collections::hash::set::HashSet<T,S,A>::get_or_insert (line 805) ... ok
test library\std\src\collections\hash\set.rs - collections::hash::set::HashSet<T,S,A>::get (line 783) ... ok
test library\std\src\collections\hash\set.rs - collections::hash::set::HashSet<T,S,A>::get_or_insert_with (line 829) ... ok
test library\std\src\collections\hash\set.rs - collections::hash::set::HashSet<T,S,A>::hasher (line 508) ... ok
test library\std\src\collections\hash\set.rs - collections::hash::set::HashSet<T,S,A>::insert (line 983) ... ok
test library\std\src\collections\hash\set.rs - collections::hash::set::HashSet<T,S,A>::intersection (line 697) ... ok
test library\std\src\collections\hash\set.rs - collections::hash::set::HashSet<T,S,A>::into_iter (line 1642) ... ok
test library\std\src\collections\hash\set.rs - collections::hash::set::HashSet<T,S,A>::is_disjoint (line 903) ... ok
test library\std\src\collections\hash\set.rs - collections::hash::set::HashSet<T,S,A>::is_empty (line 375) ... ok
test library\std\src\collections\hash\set.rs - collections::hash::set::HashSet<T,S,A>::is_subset (line 929) ... ok
test library\std\src\collections\hash\set.rs - collections::hash::set::HashSet<T,S,A>::iter (line 329) ... ok
test library\std\src\collections\hash\set.rs - collections::hash::set::HashSet<T,S,A>::is_superset (line 951) ... ok
test library\std\src\collections\hash\set.rs - collections::hash::set::HashSet<T,S,A>::len (line 357) ... ok
test library\std\src\collections\hash\set.rs - collections::hash::set::HashSet<T,S,A>::remove (line 1030) ... ok
test library\std\src\collections\hash\set.rs - collections::hash::set::HashSet<T,S,A>::reserve (line 541) ... ok
test library\std\src\collections\hash\set.rs - collections::hash::set::HashSet<T,S,A>::replace (line 1004) ... ok
test library\std\src\collections\hash\set.rs - collections::hash::set::HashSet<T,S,A>::retain (line 465) ... ok
test library\std\src\collections\hash\set.rs - collections::hash::set::HashSet<T,S,A>::shrink_to (line 607) ... ok
test library\std\src\collections\hash\set.rs - collections::hash::set::HashSet<T,S,A>::shrink_to_fit (line 584) ... ok
test library\std\src\collections\hash\set.rs - collections::hash::set::HashSet<T,S,A>::symmetric_difference (line 660) ... ok
test library\std\src\collections\hash\set.rs - collections::hash::set::HashSet<T,S,A>::take (line 1058) ... ok
test library\std\src\collections\hash\set.rs - collections::hash::set::HashSet<T,S,A>::try_reserve (line 567) ... ok
test library\std\src\collections\hash\set.rs - collections::hash::set::HashSet<T,S,A>::union (line 726) ... ok
test library\std\src\collections\hash\set.rs - collections::hash::set::HashSet<T,S>::with_capacity_and_hasher (line 255) ... ok
test library\std\src\collections\hash\set.rs - collections::hash::set::HashSet<T,S>::with_hasher (line 223) ... ok
test library\std\src\collections\hash\set.rs - collections::hash::set::Intersection (line 1506) ... ok
test library\std\src\collections\hash\set.rs - collections::hash::set::IntoIter (line 1421) ... ok
test library\std\src\collections\hash\set.rs - collections::hash::set::Iter (line 1391) ... ok
---
---- [run-make] tests\run-make\dump-ice-to-disk stdout ----

error: rmake recipe failed to complete
status: exit code: 101
command: "D:\\a\\rust\\rust\\build\\i686-pc-windows-msvc\\test\\run-make\\dump-ice-to-disk\\rmake.exe"
stdout: none
--- stderr -------------------------------
=== baseline ICE MESSAGE (18 lines) ====
thread 'rustc' panicked at compiler\rustc_errors\src\lib.rs:1853:17:
aborting due to `-Z treat-err-as-bug=1`
stack backtrace:
   0: 0x64ad2563 - <std[d26399ebd82e1244]::backtrace::Backtrace>::force_capture
   1: 0x5c58937d - _RNvXsv_NtCsbsn6EkG5S92_5alloc5boxedINtB5_3BoxNCNvCs1IzBn4LHEKd_17rustc_driver_impl16install_ice_hooks_0EINtNtNtCsahTI9CcW7vm_4core3ops8function2FnTRDG0_IB1F_TRL1_INtNtCsi3TyukDfTii_3std5panic13PanicHookInfoL0_EEEp6OutputuNtNtB1L_6marker4SendNtB3z_4SyncEL_
   2: 0x5c5d00d7 - std[d26399ebd82e1244]::panicking::update_hook::<alloc[85743ba69078ce02]::boxed::Box<rustc_driver_impl[1405844522ddc02b]::install_ice_hook::{closure#1}>>::{closure#0}
   3: 0x64aca99d - std[d26399ebd82e1244]::sys::backtrace::__rust_begin_short_backtrace::<std[d26399ebd82e1244]::sys::process::windows::child_pipe::spawn_pipe_relay::{closure#0}, ()>
   4:  0x8eafad8 - <unknown>
   5: 0x6379cc35 - <rustc_infer[692ecd819d00f29e]::infer::InferCtxt>::shallow_resolve


rustc version: 1.94.0-nightly (73d71566e 2026-01-15)
platform: i686-pc-windows-msvc

query stack during panic:
#0 [typeck] type-checking `main`
#1 [analysis] running analysis passes on crate `lib`
end of query stack

=== RUST_BACKTRACE=short ICE MESSAGE (42 lines) ====
thread 'rustc' panicked at compiler\rustc_errors\src\lib.rs:1853:17:
aborting due to `-Z treat-err-as-bug=1`
stack backtrace:
   0: 0x64ad2563 - <std[d26399ebd82e1244]::backtrace::Backtrace>::force_capture
   1: 0x5c58937d - _RNvXsv_NtCsbsn6EkG5S92_5alloc5boxedINtB5_3BoxNCNvCs1IzBn4LHEKd_17rustc_driver_impl16install_ice_hooks_0EINtNtNtCsahTI9CcW7vm_4core3ops8function2FnTRDG0_IB1F_TRL1_INtNtCsi3TyukDfTii_3std5panic13PanicHookInfoL0_EEEp6OutputuNtNtB1L_6marker4SendNtB3z_4SyncEL_
   2: 0x5c5d00d7 - std[d26399ebd82e1244]::panicking::update_hook::<alloc[85743ba69078ce02]::boxed::Box<rustc_driver_impl[1405844522ddc02b]::install_ice_hook::{closure#1}>>::{closure#0}
   3: 0x64aca99d - std[d26399ebd82e1244]::sys::backtrace::__rust_begin_short_backtrace::<std[d26399ebd82e1244]::sys::process::windows::child_pipe::spawn_pipe_relay::{closure#0}, ()>
   4: 0x64ac692b - std[d26399ebd82e1244]::sys::backtrace::__rust_end_short_backtrace::<std[d26399ebd82e1244]::panicking::panic_handler::{closure#0}, !>
   5: 0x64acb780 - __rustc[aeb4ddb536a5b06e]::rust_begin_unwind
   6: 0x64d6736d - core[77d6b4fcb717ea26]::panicking::panic_fmt
   7: 0x6441c14c - <rustc_errors[fd9a92b1337a5b3f]::DiagCtxtInner>::emit_diagnostic
   8: 0x5c852c08 - <rustc_errors[fd9a92b1337a5b3f]::diagnostic::Diag>::with_span::<rustc_error_messages[c80649b04360a7f6]::MultiSpan>
   9: 0x6441ba21 - <rustc_errors[fd9a92b1337a5b3f]::DiagCtxtInner>::emit_diagnostic
  10: 0x6441740b - <rustc_errors[fd9a92b1337a5b3f]::DiagCtxtHandle>::emit_diagnostic
  11: 0x64470a8a - <rustc_errors[fd9a92b1337a5b3f]::diagnostic::Diag>::emit_producing_error_guaranteed
  12: 0x6087b1d2 - <rustc_hir_typeck[4b73a9876a57a6f1]::fn_ctxt::checks::FnCallDiagCtxt>::check_single_incompatible
  13: 0x60b72186 - <rustc_hir_typeck[4b73a9876a57a6f1]::fn_ctxt::FnCtxt>::check_repeat_exprs
  14: 0x60afa036 - <rustc_hir_typeck[4b73a9876a57a6f1]::fn_ctxt::FnCtxt>::explain_never_type_coerced_to_unit
  15: 0x60addd3c - <rustc_hir_typeck[4b73a9876a57a6f1]::fn_ctxt::FnCtxt>::check_expr_kind
  16: 0x60af7278 - <rustc_hir_typeck[4b73a9876a57a6f1]::fn_ctxt::FnCtxt>::check_expr_coercible_to_type
  17: 0x60af53a9 - <rustc_hir_typeck[4b73a9876a57a6f1]::fn_ctxt::FnCtxt>::check_expr_with_expectation
  18: 0x60b6e1e2 - <rustc_hir_typeck[4b73a9876a57a6f1]::fn_ctxt::FnCtxt>::label_fn_like
  19: 0x60ad4de8 - <rustc_hir_typeck[4b73a9876a57a6f1]::fn_ctxt::FnCtxt>::check_expr_kind
  20: 0x60af7278 - <rustc_hir_typeck[4b73a9876a57a6f1]::fn_ctxt::FnCtxt>::check_expr_coercible_to_type
  21: 0x60af53a9 - <rustc_hir_typeck[4b73a9876a57a6f1]::fn_ctxt::FnCtxt>::check_expr_with_expectation
  22: 0x60af4b98 - <rustc_hir_typeck[4b73a9876a57a6f1]::fn_ctxt::FnCtxt>::check_return_or_body_tail
  23: 0x60888e1b - rustc_hir_typeck[4b73a9876a57a6f1]::check::check_fn
  24: 0x6086c52b - rustc_hir_typeck[4b73a9876a57a6f1]::used_trait_imports
  25: 0x6086f47f - rustc_hir_typeck[4b73a9876a57a6f1]::typeck
  26: 0x62c3fa03 - rustc_query_impl[28f363310b40faa2]::query_callbacks
  27: 0x62e3b4db - _RINvNtNtCs8R3GYYoQ095_18rustc_query_system5query8plumbing17try_execute_queryINtCs3vYKiHe0IsE_16rustc_query_impl13DynamicConfigINtNtCs3wnOBdwOged_21rustc_data_structures9vec_cache8VecCacheNtCs2V5l2LAFGma_12rustc_hir_id7OwnerIdINtNtNtCs4MsIHAdLBr8_12rustc_m
  28: 0x62c62deb - rustc_query_impl[28f363310b40faa2]::query_impl::typeck::get_query_non_incr::__rust_end_short_backtrace
  29: 0x64a6bfb0 - <rustc_data_structures[2906d5706c6d8fc3]::profiling::SelfProfilerRef>::verbose_generic_activity


rustc version: 1.94.0-nightly (73d71566e 2026-01-15)
platform: i686-pc-windows-msvc

query stack during panic:
#0 [typeck] type-checking `main`
#1 [analysis] running analysis passes on crate `lib`
end of query stack

====================================

thread 'main' (1268) panicked at D:\a\rust\rust\tests\run-make\dump-ice-to-disk\rmake.rs:119:9:
ICE message length mismatch: baseline has 18 lines but RUST_BACKTRACE=short has 42 lines
stack backtrace:
   0: std::panicking::panic_handler
             at /rustc/1b6e21e163baa0b20f119e17e3871910978a60b6/library\std\src\panicking.rs:689
   1: core::panicking::panic_fmt
             at /rustc/1b6e21e163baa0b20f119e17e3871910978a60b6/library\core\src\panicking.rs:80
---
   9: RtlGetAppContainerNamedObjectPath
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
------------------------------------------

---- [run-make] tests\run-make\dump-ice-to-disk stdout end ----

failures:
    [run-make] tests\run-make\dump-ice-to-disk

test result: FAILED. 319 passed; 1 failed; 134 ignored; 0 measured; 5 filtered out; finished in 235.15s

Some tests failed in compiletest suite=run-make mode=run-make host=i686-pc-windows-msvc target=i686-pc-windows-msvc
Bootstrap failed while executing `test --stage 2 --skip=compiler --skip=src`
Build completed unsuccessfully in 2:38:13
make: *** [Makefile:110: ci-msvc-py] Error 1
  local time: Thu Jan 15 12:32:27 CUT 2026
  network time: Thu, 15 Jan 2026 12:32:28 GMT
##[error]Process completed with exit code 2.
##[group]Run echo "disk usage:"
echo "disk usage:"

@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 Jan 15, 2026
@rust-bors
Copy link
Contributor

rust-bors bot commented Jan 15, 2026

💔 Test for 73d7156 failed: CI. Failed job:

@dianqk
Copy link
Member Author

dianqk commented Jan 15, 2026

@bors try jobs=i686-msvc-1,x86_64-msvc-1,x86_64-mingw-1

@rust-bors

This comment has been minimized.

rust-bors bot pushed a commit that referenced this pull request Jan 15, 2026
 Only use SSA locals in SimplifyComparisonIntegral


try-job: i686-msvc-1
try-job: x86_64-msvc-1
try-job: x86_64-mingw-1
@dianqk
Copy link
Member Author

dianqk commented Jan 15, 2026

That test documents internally that it is testing for a bug??? Maybe we should delete it in another PR if we can't figure out what it's for.

The test that is from #128627 is correct but fragile.

The test expects the output is:

Breakpoint 1, dummy_span::main () at tests/debuginfo/dummy_span.rs:53
53	    zzz(); // #break
54	    if number % 7 == 0 {
58	        return Ok(()); // #loc1
61	} // #loc2
std::sys::backtrace::__rust_begin_short_backtrace<fn() -> core::result::Result<(), core::num::error::ParseIntError>, core::result::Result<(), core::num::error::ParseIntError>> (f=0x555555555f70 <dummy_span::main>) at /rustc/FAKE_PREFIX/library/std/src/sys/backtrace.rs:172
std::rt::lang_start::{closure#0}<core::result::Result<(), core::num::error::ParseIntError>> () at /rustc/FAKE_PREFIX/library/std/src/rt.rs:206

not:

Breakpoint 1, dummy_span::main () at tests/debuginfo/dummy_span.rs:53
53	    zzz(); // #break
54	    if number % 7 == 0 {
58	        return Ok(()); // #loc1
1	//@ min-lldb-version: 310
61	} // #loc2
std::sys::backtrace::__rust_begin_short_backtrace<fn() -> core::result::Result<(), core::num::error::ParseIntError>, core::result::Result<(), core::num::error::ParseIntError>> (f=0x555555555f70 <dummy_span::main>) at /rustc/FAKE_PREFIX/library/std/src/sys/backtrace.rs:172
std::rt::lang_start::{closure#0}<core::result::Result<(), core::num::error::ParseIntError>> () at /rustc/FAKE_PREFIX/library/std/src/rt.rs:206

I have dug more into why the #loc2 is missing. Taking the example from https://rust.godbolt.org/z/GvToxj6vh.

The assembly code with SimplifyComparisonIntegral is:

.LBB40_21:
        .loc    6 14 16 is_stmt 1
        mov     byte ptr [rsp + 79], 5
        .loc    6 0 0 is_stmt 0
        jmp     .LBB40_23
...
.Ltmp314:
.LBB40_23:
        .loc    6 18 1 is_stmt 1
        lea     rdi, [rsp + 112]
        call    qword ptr [rip + core[270d1373c8f6a07d]::ptr::drop_in_place::<alloc[206d51544a00c3e8]::string::String>@GOTPCREL]
        jmp     .LBB40_27

without SimplifyComparisonIntegral:

.LBB40_22:
        .loc    6 14 16 is_stmt 1
        mov     byte ptr [rsp + 79], 5
        .loc    6 0 0 is_stmt 0
        jmp     .LBB40_27
...
.Ltmp319:
.LBB40_26:
        .loc    6 18 2 is_stmt 0
        mov     al, byte ptr [rsp + 79]
        .loc    6 18 2 epilogue_begin
        add     rsp, 360
        .cfi_def_cfa_offset 8
        ret
.LBB40_27:
        .cfi_def_cfa_offset 368
.Ltmp320:
        .loc    6 18 1 # What about is_stmt here?
        lea     rdi, [rsp + 112]
        call    qword ptr [rip + core[270d1373c8f6a07d]::ptr::drop_in_place::<alloc[206d51544a00c3e8]::string::String>@GOTPCREL]
        jmp     .LBB40_26

IIUC, the .loc of .LBB40_27 is is_stmt 0 because .LBB40_26 is is_stmt 0. I haven't read the DWARF document yet :(.

This can be verified by changing is_stmt 0 to is_stmt 1. Some commands are useful:

llvm-mc -filetype=obj -triple=x86_64 dummy_span.s -o dummy_span.o
llvm-dwarfdump --debug-line dummy_span.o

There is some note from https://llvm.org/docs/KeyInstructionsDebugInfo.html:

DWARF provides a helpful tool the compiler can employ to mitigate this jumpiness, the is_stmt flag, which indicates that an instruction is a recommended breakpoint location. However, LLVM’s current approach to deciding is_stmt placement essentially reduces down to “is the associated line number different to the previous instruction’s?”.

(Note: It’s up to the debugger if it wants to interpret is_stmt or not, and at time of writing LLDB doesn’t;

This tells us:

  • is_stmt is not placed if the instruction has the same line number as the previous one.
  • LLDB may ignore is_stmt, but GDB may use is_stmt.

I think this has explained why LLDB passes the test. LBB40_26 and LBB40_27 have the same line number, so LBB40_27 doesn't have is_stmt.

I have a more reliable test: https://gist.github.com/dianqk/dd1ce92143bbee077e2af2a3db9c8340, but this can also be fragile when the BBs are reordered due to some changes. I have no objection to removing the test. cc @khuey @nnethercote (#128627)

@khuey
Copy link
Contributor

khuey commented Jan 15, 2026

I'm not sure I follow what the behavior change is ultimately introduced in the test. Are you saying that after this PR stepping through the test in gdb has a jump to line 1?

@dianqk
Copy link
Member Author

dianqk commented Jan 15, 2026

I'm not sure I follow what the behavior change is ultimately introduced in the test. Are you saying that after this PR stepping through the test in gdb has a jump to line 1?

No, just gdb skips #loc2:

Breakpoint 1, dummy_span::main () at tests/debuginfo/dummy_span.rs:53
53	    zzz(); // #break
54	    if number % 7 == 0 {
58	        return Ok(()); // #loc1
std::sys::backtrace::__rust_begin_short_backtrace<fn() -> core::result::Result<(), core::num::error::ParseIntError>, core::result::Result<(), core::num::error::ParseIntError>> (f=0x555555555f70 <dummy_span::main>) at /rustc/FAKE_PREFIX/library/std/src/sys/backtrace.rs:172
std::rt::lang_start::{closure#0}<core::result::Result<(), core::num::error::ParseIntError>> () at /rustc/FAKE_PREFIX/library/std/src/rt.rs:206

@khuey
Copy link
Contributor

khuey commented Jan 15, 2026

Ah that's interesting. Based on your other example it seems like your impl Drop for Foo is still attributed to #loc2. Do we understand why std::env::Args's Drop impl isn't?

I'm fine with changing the test to add our own struct with a custom Drop impl if we need it to trigger something on #loc2

@rust-bors
Copy link
Contributor

rust-bors bot commented Jan 15, 2026

☀️ Try build successful (CI)
Build commit: eb21be0 (eb21be0dc17f82de5068730d2a1f0f279b8a8209, parent: a6acf0f07f0ed1c12e26dc0db3b9bf1d0504a0bb)

@dianqk
Copy link
Member Author

dianqk commented Jan 15, 2026

Ah that's interesting. Based on your other example it seems like your impl Drop for Foo is still attributed to #loc2. Do we understand why std::env::Args's Drop impl isn't?

I'm fine with changing the test to add our own struct with a custom Drop impl if we need it to trigger something on #loc2

std::env::Args also works. I guess it's just a reorder BBs problem that causes the is_stmt flag to be missing. This is a minor bug to LLVM.

@dianqk
Copy link
Member Author

dianqk commented Jan 15, 2026

@bors retry (potential flaky test)

@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 Jan 15, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-mir-opt Area: MIR optimizations perf-regression Performance regression. 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.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Miscompile involving function inlining