Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rollup of 18 pull requests #113097

Closed
wants to merge 68 commits into from
Closed

Conversation

TaKO8Ki
Copy link
Member

@TaKO8Ki TaKO8Ki commented Jun 27, 2023

Successful merges:

Failed merges:

r? @ghost
@rustbot modify labels: rollup

Create a similar rollup

ankane and others added 30 commits April 12, 2023 15:45
Use this LLVM option: https://llvm.org/doxygen/classllvm_1_1TargetOptions.html#acd83fce25de1ac9f6c975135a8235c22
when TrapUnreachable is enabled. This prevents codegenning unnecessary
double-traps in some situations.
This reverts commit 94c8bf5889a310cb758e89be0b3b066162013915.
Applied suggestions from code review

Co-authored-by: Nikita Popov <github@npopov.com>
Before this commit, tests were invoked in multiple places, especially
due to `-Z panic-abort-tests`, and adding a new test kind meant having
to chase down and update all these places.

This commit creates a new Runnable enum, and its children RunnableTest
and RunnableBench. The rest of the harness will now pass around the enum
rather than constructing and passing around boxed functions. The enum
has two children enums because invoking tests and invoking benchmarks
requires different parameters.
The inner function is not needed anymore as it's only called once after
the previous commit's refactoring.
Before this commit, both static and dynamic benches were converted to a
DynTestFn, with a boxed closure that ran the benchmarks exactly once.

While this worked, it conflicted with -Z panic-abort-tests as the flag
does not support dynamic tests. With this change, a StaticBenchFn is
converted to a StaticBenchAsTestFn, avoiding any dynamic test creation.
DynBenchFn is also converted to DynBenchAsTestFn for completeness.
floriangru and others added 21 commits June 27, 2023 11:35
Add `Read`, `Write` and `Seek` impls for `Arc<File>` where appropriate

If `&T` implements these traits, `Arc<T>` has no reason not to do so
either. This is useful for operating system handles like `File` or
`TcpStream` which don't need a mutable reference to implement these
traits.

CC rust-lang#53835.
CC rust-lang#94744.
Add gamma function to f32 and f64

Adds the [gamma function](https://en.wikipedia.org/wiki/Gamma_function) to `f32` and `f64` (`tgamma` and `tgammaf` from C).

Refs:
- rust-lang/rfcs#864
- rust-lang#18271
…=nikic

Rebased: Mark drop calls in landing pads cold instead of noinline

I noticed that certain inlining optimizations were missing while staring at some compiled code output. I'd like to see this relanded, so I rebased the PR from ``@erikdesjardins`` (PR rust-lang#94823).

This PR reapplies rust-lang#92419, which was reverted in rust-lang#94402 due to rust-lang#94390.

Fixes rust-lang#46515, fixes rust-lang#87055.

Update: fixes rust-lang#97217.
Use the LLVM option NoTrapAfterNoreturn

Use this LLVM option: https://llvm.org/doxygen/classllvm_1_1TargetOptions.html#acd83fce25de1ac9f6c975135a8235c22 when TrapUnreachable is enabled. This prevents codegenning unnecessary double-traps in some situations.

See further discussion here: rust-lang/compiler-team#618
Implement proposed API for `proc_macro_span`

As proposed in [rust-lang#54725 (comment)](rust-lang#54725 (comment)). I have omitted the byte-level API as it's already available as [`Span::byte_range`](https://doc.rust-lang.org/nightly/proc_macro/struct.Span.html#method.byte_range).

`@rustbot` label +A-proc-macros

r? `@m-ou-se`
Always name the return place.

MIR opts more and more consider `_0` as just another local, so there is no point in keeping the special case in debug-info logic.
[RFC-3086] Consider out-of-bound depths of `count`

Fix rust-lang#111905

In the matching of macro calls and their respective declarations (transcribe), a warning is issued if `count` has a depth greater than the number of nested `NamedMatch`s through be verification of `MatchedSeq` with empty elements.

Doesn't affect `( $( { $( [ $( ( $( $t:ident )* ) )* ] )* } )* ) => { ${count(t, 1)} }` called with `bar!( { [] [] } )` which will still continue to output `2`.
…ch, r=m-ou-se

Test benchmarks with `-Z panic-abort-tests`

During test execution, when a `#[bench]` benchmark is encountered it's executed once to check whether it works. Unfortunately that was not compatible with `-Z panic-abort-tests`: the feature works by spawning a subprocess for each test, which prevents the use of dynamic tests as we cannot pass closures to child processes, and before this PR the conversion from benchmark to test was done by turning benchmarks into dynamic tests whose closures execute the benchmark once.

The approach this PR took was to add two new kinds of `TestFn`s: `StaticBenchAsTestFn` and `DynBenchAsTestFn` (:warning: **this is a breaking change** :warning:). With that change, a `StaticBenchFn` can be converted into a `StaticBenchAsTestFn` without creating dynamic tests, and making it possible to test `#[bench]` functions with `-Z panic-abort-tests`. The subprocess test runner also had to be updated to perform the conversion from benchmark to test when appropriate.

Along with the bug fix, in the first commit I refactored how tests are executed: rather than executing the test function in multiple places across `libtest`, there is now a private `TestFn::into_runnable()` method, which returns either a `RunnableTest` or `RunnableBench`, on which you can call the `run()` method. This simplified the rest of the changes in the PR.

This PR is best reviewed commit-by-commit.
Fixes rust-lang#73509
… r=WaffleLapkin

Better diagnostics for dlltool errors.

When dlltool fails, show the full command that was executed. In particular, llvm-dlltool is not very helpful, printing a generic usage message rather than what actually went wrong, so stdout and stderr aren't of much use when troubleshooting.
Enable zlib in LLVM on aarch64-apple-darwin

Works on macOS 13.4, Xcode version 14.3.1.0.1.1683849156

This was disabled in rust-lang#75500 on Apple Silicon Developer Transition Kit, but Apple appears to have fixed their zlib now
…nted`-std-agnostic, r=WaffleLapkin

Make `rustc_on_unimplemented` std-agnostic

See rust-lang#112923

r? `@WaffleLapkin`
Use `CoverageKind::as_operand_id` instead of manually reimplementing it

These two pieces of code are functionally equivalent to the `CoverageKind::as_operand_id` method that already exists, and is already used elsewhere in this file.

This slightly reduces the amount of code that manually pattern-matches on `CoverageKind`.
…r=oli-obk

Export AnalysisResults trait in rustc_mir_dataflow

Followup to rust-lang#108293
Re-exports the new trait defined in mentioned PR to make ResultsCursor::seek_before_primary_effect, ResultsCursor::seek_after_primary_effect... usable again outside the compiler itself.
…-in-head, r=notriddle

Fix invalid HTML DIV tag used in HEAD

Fixes rust-lang#113067.

The issue also nicely explains the whole problem.

r? `@notriddle`
…i-obk

Remove unused struct and tweak format macro uses

This pul request removes an unused struct and tweaks `format!` uses.
@rustbot rustbot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-bootstrap Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap) T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. T-libs Relevant to the library team, which will review and decide on the PR/issue. T-rustdoc Relevant to the rustdoc team, which will review and decide on the PR/issue. rollup A PR which is a rollup labels Jun 27, 2023
@TaKO8Ki TaKO8Ki closed this Jun 27, 2023
@TaKO8Ki TaKO8Ki deleted the rollup-x7hslm2 branch June 27, 2023 13:49
@rust-log-analyzer
Copy link
Collaborator

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

Click to see the possible cause of the failure (guessed by this bot)
failures:

---- [assembly] tests/assembly/stack-protector/stack-protector-heuristics-effect.rs#strong stdout ----

error in revision `strong`: verification with 'FileCheck' failed
status: exit status: 1
command: "/usr/lib/llvm-14/bin/FileCheck" "--input-file" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/assembly/stack-protector/stack-protector-heuristics-effect.strong/stack-protector-heuristics-effect.s" "/checkout/tests/assembly/stack-protector/stack-protector-heuristics-effect.rs" "--allow-unused-prefixes" "--check-prefixes" "CHECK,NONMSVC,strong" "--dump-input-context" "100"
stdout: none
--- stderr -------------------------------
/checkout/tests/assembly/stack-protector/stack-protector-heuristics-effect.rs:373:13: error: strong: expected string not found in input
 // strong: __stack_chk_fail
            ^
/checkout/obj/build/x86_64-unknown-linux-gnu/test/assembly/stack-protector/stack-protector-heuristics-effect.strong/stack-protector-heuristics-effect.s:460:33: note: scanning from here
 .section .text.unsized_fn_param,"ax",@progbits
                                ^
/checkout/obj/build/x86_64-unknown-linux-gnu/test/assembly/stack-protector/stack-protector-heuristics-effect.strong/stack-protector-heuristics-effect.s:533:39: note: possible intended match here
 callq *_ZN4core5slice5index24slice_end_index_len_fail17h6727c38e88cfe886E@GOTPCREL(%rip)

Input file: /checkout/obj/build/x86_64-unknown-linux-gnu/test/assembly/stack-protector/stack-protector-heuristics-effect.strong/stack-protector-heuristics-effect.s
Check file: /checkout/tests/assembly/stack-protector/stack-protector-heuristics-effect.rs


-dump-input=help explains the following input dump.
Input was:
<<<<<<
             .
             .
             .
             .
           360:  ud2 
           361: .Lfunc_end10: 
           362:  .size local_large_var_moved, .Lfunc_end10-local_large_var_moved 
           363:  .cfi_endproc 
           364:  
           365:  .section .text.local_large_var_cloned,"ax",@progbits 
           366:  .globl local_large_var_cloned 
           367:  .p2align 4, 0x90 
           368:  .type local_large_var_cloned,@function 
           369: local_large_var_cloned: 
           370:  .cfi_startproc 
           371:  subq $56, %rsp 
           372:  .cfi_def_cfa_offset 64 
Build completed unsuccessfully in 0:11:06
           373:  movq %rdi, %rax 
           374:  movq %fs:40, %rcx 
           375:  movq %rcx, 48(%rsp) 
           376:  movq $0, 8(%rsp) 
           377:  movq $1, 16(%rsp) 
           378:  movq $2, 24(%rsp) 
           379:  movq $3, 32(%rsp) 
           380:  movq $4, 40(%rsp) 
           381:  leaq 8(%rsp), %rdi 
           382:  callq *%rax 
           383:  movq %fs:40, %rax 
           384:  cmpq 48(%rsp), %rax 
           385:  jne .LBB11_2 
           386:  addq $56, %rsp 
           387:  .cfi_def_cfa_offset 8 
           388:  retq 
           389: .LBB11_2: 
           390:  .cfi_def_cfa_offset 64 
           391:  callq __stack_chk_fail@PLT 
           392:  ud2 
           393: .Lfunc_end11: 
           394:  .size local_large_var_cloned, .Lfunc_end11-local_large_var_cloned 
           395:  .cfi_endproc 
           396:  
           397:  .section .text.alloca_small_compile_time_constant_arg,"ax",@progbits 
           398:  .globl alloca_small_compile_time_constant_arg 
           399:  .p2align 4, 0x90 
           400:  .type alloca_small_compile_time_constant_arg,@function 
           401: alloca_small_compile_time_constant_arg: 
           402:  .cfi_startproc 
           403:  pushq %rbx 
           404:  .cfi_def_cfa_offset 16 
           405:  .cfi_offset %rbx, -16 
           406:  movq %rdi, %rbx 
           407:  movl $8, %edi 
           408:  callq *alloca@GOTPCREL(%rip) 
           409:  movq %rax, %rdi 
           410:  movq %rbx, %rax 
           411:  popq %rbx 
           412:  .cfi_def_cfa_offset 8 
           413:  jmpq *%rax 
           414: .Lfunc_end12: 
           415:  .size alloca_small_compile_time_constant_arg, .Lfunc_end12-alloca_small_compile_time_constant_arg 
           416:  .cfi_endproc 
           417:  
           418:  .section .text.alloca_large_compile_time_constant_arg,"ax",@progbits 
           419:  .globl alloca_large_compile_time_constant_arg 
           420:  .p2align 4, 0x90 
           421:  .type alloca_large_compile_time_constant_arg,@function 
           422: alloca_large_compile_time_constant_arg: 
           423:  .cfi_startproc 
           424:  pushq %rbx 
           425:  .cfi_def_cfa_offset 16 
           426:  .cfi_offset %rbx, -16 
           427:  movq %rdi, %rbx 
           428:  movl $9, %edi 
           429:  callq *alloca@GOTPCREL(%rip) 
           430:  movq %rax, %rdi 
           431:  movq %rbx, %rax 
           432:  popq %rbx 
           433:  .cfi_def_cfa_offset 8 
           434:  jmpq *%rax 
           435: .Lfunc_end13: 
           436:  .size alloca_large_compile_time_constant_arg, .Lfunc_end13-alloca_large_compile_time_constant_arg 
           437:  .cfi_endproc 
           438:  
           439:  .section .text.alloca_dynamic_arg,"ax",@progbits 
           440:  .globl alloca_dynamic_arg 
           441:  .p2align 4, 0x90 
           442:  .type alloca_dynamic_arg,@function 
           443: alloca_dynamic_arg: 
           444:  .cfi_startproc 
           445:  pushq %rbx 
           446:  .cfi_def_cfa_offset 16 
           447:  .cfi_offset %rbx, -16 
           448:  movq %rdi, %rbx 
           449:  movq %rsi, %rdi 
           450:  callq *alloca@GOTPCREL(%rip) 
           451:  movq %rax, %rdi 
           452:  movq %rbx, %rax 
           453:  popq %rbx 
           454:  .cfi_def_cfa_offset 8 
           455:  jmpq *%rax 
           456: .Lfunc_end14: 
           457:  .size alloca_dynamic_arg, .Lfunc_end14-alloca_dynamic_arg 
           458:  .cfi_endproc 
           459:  
           460:  .section .text.unsized_fn_param,"ax",@progbits 
check:373'0                                     X~~~~~~~~~~~~~~~ error: no match found
           461:  .globl unsized_fn_param 
check:373'0     ~~~~~~~~~~~~~~~~~~~~~~~~~
           462:  .p2align 4, 0x90 
check:373'0     ~~~~~~~~~~~~~~~~~~
           463:  .type unsized_fn_param,@function 
check:373'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           464: unsized_fn_param: 
check:373'0     ~~~~~~~~~~~~~~~~~~
           465: .Lfunc_begin1: 
check:373'0     ~~~~~~~~~~~~~~~
           466:  .cfi_startproc 
check:373'0     ~~~~~~~~~~~~~~~~
           467:  .cfi_personality 155, DW.ref.rust_eh_personality 
check:373'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           468:  .cfi_lsda 27, .Lexception1 
check:373'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           469:  pushq %r15 
check:373'0     ~~~~~~~~~~~~
           470:  .cfi_def_cfa_offset 16 
check:373'0     ~~~~~~~~~~~~~~~~~~~~~~~~
           471:  pushq %r14 
check:373'0     ~~~~~~~~~~~~
           472:  .cfi_def_cfa_offset 24 
check:373'0     ~~~~~~~~~~~~~~~~~~~~~~~~
           473:  pushq %r12 
check:373'0     ~~~~~~~~~~~~
           474:  .cfi_def_cfa_offset 32 
check:373'0     ~~~~~~~~~~~~~~~~~~~~~~~~
           475:  pushq %rbx 
check:373'0     ~~~~~~~~~~~~
           476:  .cfi_def_cfa_offset 40 
check:373'0     ~~~~~~~~~~~~~~~~~~~~~~~~
           477:  pushq %rax 
check:373'0     ~~~~~~~~~~~~
           478:  .cfi_def_cfa_offset 48 
check:373'0     ~~~~~~~~~~~~~~~~~~~~~~~~
           479:  .cfi_offset %rbx, -40 
check:373'0     ~~~~~~~~~~~~~~~~~~~~~~~
           480:  .cfi_offset %r12, -32 
check:373'0     ~~~~~~~~~~~~~~~~~~~~~~~
           481:  .cfi_offset %r14, -24 
check:373'0     ~~~~~~~~~~~~~~~~~~~~~~~
           482:  .cfi_offset %r15, -16 
check:373'0     ~~~~~~~~~~~~~~~~~~~~~~~
           483:  movl %edx, %eax 
check:373'0     ~~~~~~~~~~~~~~~~~
           484:  movl $2, %r15d 
check:373'0     ~~~~~~~~~~~~~~~~
           485:  subq %rax, %r15 
check:373'0     ~~~~~~~~~~~~~~~~~
           486:  cmpq %rsi, %r15 
check:373'0     ~~~~~~~~~~~~~~~~~
           487:  ja .LBB15_6 
check:373'0     ~~~~~~~~~~~~~
           488:  movq %rcx, %r14 
check:373'0     ~~~~~~~~~~~~~~~~~
           489:  movq %rdi, %r12 
check:373'0     ~~~~~~~~~~~~~~~~~
           490:  movq __rust_no_alloc_shim_is_unstable@GOTPCREL(%rip), %rax 
check:373'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           491:  movb (%rax), %al 
check:373'0     ~~~~~~~~~~~~~~~~~~
           492:  movl $1, %esi 
check:373'0     ~~~~~~~~~~~~~~~
           493:  movq %r15, %rdi 
check:373'0     ~~~~~~~~~~~~~~~~~
           494:  callq *__rust_alloc@GOTPCREL(%rip) 
check:373'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           495:  testq %rax, %rax 
check:373'0     ~~~~~~~~~~~~~~~~~~
           496:  je .LBB15_7 
check:373'0     ~~~~~~~~~~~~~
           497:  movq %rax, %rbx 
check:373'0     ~~~~~~~~~~~~~~~~~
           498:  movq %r12, %rax 
check:373'0     ~~~~~~~~~~~~~~~~~
           499:  subq %rbx, %rax 
check:373'0     ~~~~~~~~~~~~~~~~~
           500:  negq %rax 
check:373'0     ~~~~~~~~~~~
           501:  movq %r12, %rcx 
check:373'0     ~~~~~~~~~~~~~~~~~
           502:  subq %rbx, %rcx 
check:373'0     ~~~~~~~~~~~~~~~~~
           503:  cmovbeq %rax, %rcx 
check:373'0     ~~~~~~~~~~~~~~~~~~~~
           504:  cmpq %r15, %rcx 
check:373'0     ~~~~~~~~~~~~~~~~~
           505:  jb .LBB15_8 
check:373'0     ~~~~~~~~~~~~~
           506:  movq %rbx, %rdi 
check:373'0     ~~~~~~~~~~~~~~~~~
           507:  movq %r12, %rsi 
check:373'0     ~~~~~~~~~~~~~~~~~
           508:  movq %r15, %rdx 
check:373'0     ~~~~~~~~~~~~~~~~~
           509:  callq *memcpy@GOTPCREL(%rip) 
check:373'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           510: .Ltmp3: 
check:373'0     ~~~~~~~~
           511:  movq %rbx, %rdi 
check:373'0     ~~~~~~~~~~~~~~~~~
           512:  movq %r15, %rsi 
check:373'0     ~~~~~~~~~~~~~~~~~
           513:  callq *%r14 
check:373'0     ~~~~~~~~~~~~~
           514: .Ltmp4: 
check:373'0     ~~~~~~~~
           515:  movl $1, %edx 
check:373'0     ~~~~~~~~~~~~~~~
           516:  movq %rbx, %rdi 
check:373'0     ~~~~~~~~~~~~~~~~~
           517:  movq %r15, %rsi 
check:373'0     ~~~~~~~~~~~~~~~~~
           518:  addq $8, %rsp 
check:373'0     ~~~~~~~~~~~~~~~
           519:  .cfi_def_cfa_offset 40 
check:373'0     ~~~~~~~~~~~~~~~~~~~~~~~~
           520:  popq %rbx 
check:373'0     ~~~~~~~~~~~
           521:  .cfi_def_cfa_offset 32 
check:373'0     ~~~~~~~~~~~~~~~~~~~~~~~~
           522:  popq %r12 
check:373'0     ~~~~~~~~~~~
           523:  .cfi_def_cfa_offset 24 
check:373'0     ~~~~~~~~~~~~~~~~~~~~~~~~
           524:  popq %r14 
check:373'0     ~~~~~~~~~~~
           525:  .cfi_def_cfa_offset 16 
check:373'0     ~~~~~~~~~~~~~~~~~~~~~~~~
           526:  popq %r15 
check:373'0     ~~~~~~~~~~~
           527:  .cfi_def_cfa_offset 8 
check:373'0     ~~~~~~~~~~~~~~~~~~~~~~~
           528:  jmpq *__rust_dealloc@GOTPCREL(%rip) 
check:373'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           529: .LBB15_6: 
check:373'0     ~~~~~~~~~~
           530:  .cfi_def_cfa_offset 48 
check:373'0     ~~~~~~~~~~~~~~~~~~~~~~~~
           531:  leaq .L__unnamed_1(%rip), %rdx 
check:373'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           532:  movq %r15, %rdi 
check:373'0     ~~~~~~~~~~~~~~~~~
           533:  callq *_ZN4core5slice5index24slice_end_index_len_fail17h6727c38e88cfe886E@GOTPCREL(%rip) 
check:373'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
check:373'1                                           ?                                                    possible intended match
           534: .LBB15_7: 
check:373'0     ~~~~~~~~~~
           535:  movl $1, %edi 
check:373'0     ~~~~~~~~~~~~~~~
           536:  movq %r15, %rsi 
check:373'0     ~~~~~~~~~~~~~~~~~
           537:  callq *_ZN5alloc5alloc18handle_alloc_error17h8ea3b7996b611a8eE@GOTPCREL(%rip) 
check:373'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           538: .LBB15_8: 
check:373'0     ~~~~~~~~~~
           539:  leaq .L__unnamed_2(%rip), %rdi 
check:373'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           540:  movl $166, %esi 
check:373'0     ~~~~~~~~~~~~~~~~~
           541:  callq *_ZN4core9panicking14panic_nounwind17h0aeb95e83e648c43E@GOTPCREL(%rip) 
check:373'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           542: .LBB15_5: 
check:373'0     ~~~~~~~~~~
           543: .Ltmp5: 
check:373'0     ~~~~~~~~
           544:  movq %rax, %r14 
check:373'0     ~~~~~~~~~~~~~~~~~
           545:  movl $1, %edx 
check:373'0     ~~~~~~~~~~~~~~~
           546:  movq %rbx, %rdi 
check:373'0     ~~~~~~~~~~~~~~~~~
           547:  movq %r15, %rsi 
check:373'0     ~~~~~~~~~~~~~~~~~
           548:  callq *__rust_dealloc@GOTPCREL(%rip) 
check:373'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           549:  movq %r14, %rdi 
check:373'0     ~~~~~~~~~~~~~~~~~
           550:  callq _Unwind_Resume@PLT 
check:373'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~
           551: .Lfunc_end15: 
check:373'0     ~~~~~~~~~~~~~~
           552:  .size unsized_fn_param, .Lfunc_end15-unsized_fn_param 
check:373'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           553:  .cfi_endproc 
check:373'0     ~~~~~~~~~~~~~~
           554:  .section .gcc_except_table.unsized_fn_param,"a",@progbits 
check:373'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           555:  .p2align 2 
check:373'0     ~~~~~~~~~~~~
           556: GCC_except_table15: 
check:373'0     ~~~~~~~~~~~~~~~~~~~~
           557: .Lexception1: 
check:373'0     ~~~~~~~~~~~~~~
           558:  .byte 255 
check:373'0     ~~~~~~~~~~~
           559:  .byte 255 
check:373'0     ~~~~~~~~~~~
           560:  .byte 1 
check:373'0     ~~~~~~~~~
           561:  .uleb128 .Lcst_end1-.Lcst_begin1 
check:373'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           562: .Lcst_begin1: 
check:373'0     ~~~~~~~~~~~~~~
           563:  .uleb128 .Lfunc_begin1-.Lfunc_begin1 
check:373'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           564:  .uleb128 .Ltmp3-.Lfunc_begin1 
check:373'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           565:  .byte 0 
check:373'0     ~~~~~~~~~
           566:  .byte 0 
check:373'0     ~~~~~~~~~
           567:  .uleb128 .Ltmp3-.Lfunc_begin1 
check:373'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           568:  .uleb128 .Ltmp4-.Ltmp3 
check:373'0     ~~~~~~~~~~~~~~~~~~~~~~~~
           569:  .uleb128 .Ltmp5-.Lfunc_begin1 
check:373'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           570:  .byte 0 
check:373'0     ~~~~~~~~~
           571:  .uleb128 .Ltmp4-.Lfunc_begin1 
check:373'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           572:  .uleb128 .Lfunc_end15-.Ltmp4 
check:373'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           573:  .byte 0 
check:373'0     ~~~~~~~~~
           574:  .byte 0 
check:373'0     ~~~~~~~~~
           575: .Lcst_end1: 
check:373'0     ~~~~~~~~~~~~
           576:  .p2align 2 
check:373'0     ~~~~~~~~~~~~
           577:  
check:373'0     ~
           578:  .section .text.unsized_local,"ax",@progbits 
check:373'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           579:  .globl unsized_local 
           580:  .p2align 4, 0x90 
           581:  .type unsized_local,@function 
           583:  .cfi_startproc 
           583:  .cfi_startproc 
           584:  pushq %rbp 
           585:  .cfi_def_cfa_offset 16 
           586:  .cfi_offset %rbp, -16 
           587:  movq %rsp, %rbp 
           588:  .cfi_def_cfa_register %rbp 
           589:  pushq %r15 
           590:  pushq %r14 
           591:  pushq %r13 
           592:  pushq %r12 
           593:  pushq %rbx 
           594:  subq $24, %rsp 
           595:  .cfi_offset %rbx, -56 
           596:  .cfi_offset %r12, -48 
           597:  .cfi_offset %r13, -40 
           598:  .cfi_offset %r14, -32 
           599:  .cfi_offset %r15, -24 
           600:  movq %fs:40, %rax 
           601:  movq %rax, -48(%rbp) 
           602:  movl %edx, %eax 
           603:  movl $2, %ebx 
           604:  subq %rax, %rbx 
           605:  cmpq %rsi, %rbx 
           606:  ja .LBB16_5 
           607:  movq %rcx, %r14 
           608:  movq %rdi, %r15 
           609:  movq __rust_no_alloc_shim_is_unstable@GOTPCREL(%rip), %rax 
           610:  movb (%rax), %al 
           611:  movl $1, %esi 
           612:  movq %rbx, %rdi 
           613:  callq *__rust_alloc@GOTPCREL(%rip) 
           614:  testq %rax, %rax 
           615:  je .LBB16_6 
           616:  movq %rax, %r12 
           617:  movq %r14, -56(%rbp) 
           618:  movq %r15, %rax 
           619:  subq %r12, %rax 
           620:  negq %rax 
           621:  movq %r15, %rcx 
           622:  subq %r12, %rcx 
           623:  cmovbeq %rax, %rcx 
           624:  cmpq %rbx, %rcx 
           625:  jb .LBB16_7 
           626:  movq memcpy@GOTPCREL(%rip), %r14 
           627:  movq %r12, %rdi 
           628:  movq %r15, %rsi 
           629:  movq %rbx, %rdx 
           630:  callq *%r14 
           631:  leal 15(%rbx), %eax 
           632:  andl $-16, %eax 
           633:  callq __rust_probestack 
             .
             .
>>>>>>
------------------------------------------

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
rollup A PR which is a rollup S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-bootstrap Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap) T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. T-libs Relevant to the library team, which will review and decide on the PR/issue. T-rustdoc Relevant to the rustdoc team, which will review and decide on the PR/issue.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet