This repository was archived by the owner on May 28, 2025. It is now read-only.
File tree Expand file tree Collapse file tree 3 files changed +6
-5
lines changed Expand file tree Collapse file tree 3 files changed +6
-5
lines changed Original file line number Diff line number Diff line change 1414#![ feature( core_intrinsics) ]
1515#![ feature( nll) ]
1616#![ feature( panic_runtime) ]
17+ #![ feature( std_internals) ]
1718#![ feature( staged_api) ]
1819#![ feature( rustc_attrs) ]
1920#![ feature( asm) ]
2021
2122use core:: any:: Any ;
23+ use core:: panic:: BoxMeUp ;
2224
2325#[ rustc_std_internal_symbol]
2426#[ allow( improper_ctypes_definitions) ]
@@ -28,7 +30,7 @@ pub unsafe extern "C" fn __rust_panic_cleanup(_: *mut u8) -> *mut (dyn Any + Sen
2830
2931// "Leak" the payload and shim to the relevant abort on the platform in question.
3032#[ rustc_std_internal_symbol]
31- pub unsafe extern "C" fn __rust_start_panic ( _payload : usize ) -> u32 {
33+ pub unsafe extern "C" fn __rust_start_panic ( _payload : * mut & mut dyn BoxMeUp ) -> u32 {
3234 abort ( ) ;
3335
3436 cfg_if:: cfg_if! {
Original file line number Diff line number Diff line change @@ -104,8 +104,7 @@ pub unsafe extern "C" fn __rust_panic_cleanup(payload: *mut u8) -> *mut (dyn Any
104104// implementation.
105105#[ rustc_std_internal_symbol]
106106#[ unwind( allowed) ]
107- pub unsafe extern "C" fn __rust_start_panic ( payload : usize ) -> u32 {
108- let payload = payload as * mut & mut dyn BoxMeUp ;
107+ pub unsafe extern "C" fn __rust_start_panic ( payload : * mut & mut dyn BoxMeUp ) -> u32 {
109108 let payload = ( * payload) . take_box ( ) ;
110109
111110 imp:: panic ( Box :: from_raw ( payload) )
Original file line number Diff line number Diff line change @@ -48,7 +48,7 @@ extern "C" {
4848 /// It cannot be `Box<dyn BoxMeUp>` because the other end of this call does not depend
4949 /// on liballoc, and thus cannot use `Box`.
5050 #[ unwind( allowed) ]
51- fn __rust_start_panic ( payload : usize ) -> u32 ;
51+ fn __rust_start_panic ( payload : * mut & mut dyn BoxMeUp ) -> u32 ;
5252}
5353
5454/// This function is called by the panic runtime if FFI code catches a Rust
@@ -637,7 +637,7 @@ pub fn rust_panic_without_hook(payload: Box<dyn Any + Send>) -> ! {
637637fn rust_panic ( mut msg : & mut dyn BoxMeUp ) -> ! {
638638 let code = unsafe {
639639 let obj = & mut msg as * mut & mut dyn BoxMeUp ;
640- __rust_start_panic ( obj as usize )
640+ __rust_start_panic ( obj)
641641 } ;
642642 rtabort ! ( "failed to initiate panic, error {}" , code)
643643}
You can’t perform that action at this time.
0 commit comments