@@ -36,16 +36,22 @@ pub unsafe extern "C" fn __rust_panic_cleanup(_: *mut u8) -> *mut (dyn Any + Sen
36
36
pub unsafe fn __rust_start_panic ( _payload : & mut dyn PanicPayload ) -> u32 {
37
37
// Android has the ability to attach a message as part of the abort.
38
38
#[ cfg( target_os = "android" ) ]
39
- android:: android_set_abort_message ( _payload) ;
39
+ unsafe {
40
+ android:: android_set_abort_message ( _payload) ;
41
+ }
40
42
#[ cfg( target_os = "zkvm" ) ]
41
- zkvm:: zkvm_set_abort_message ( _payload) ;
43
+ unsafe {
44
+ zkvm:: zkvm_set_abort_message ( _payload) ;
45
+ }
42
46
43
- abort ( ) ;
47
+ unsafe {
48
+ abort ( ) ;
49
+ }
44
50
45
51
cfg_if:: cfg_if! {
46
52
if #[ cfg( any( unix, target_os = "solid_asp3" ) ) ] {
47
53
unsafe fn abort( ) -> ! {
48
- libc:: abort( ) ;
54
+ unsafe { libc:: abort( ) ; }
49
55
}
50
56
} else if #[ cfg( any( target_os = "hermit" ,
51
57
all( target_vendor = "fortanix" , target_env = "sgx" ) ,
@@ -57,7 +63,7 @@ pub unsafe fn __rust_start_panic(_payload: &mut dyn PanicPayload) -> u32 {
57
63
unsafe extern "C" {
58
64
pub fn __rust_abort( ) -> !;
59
65
}
60
- __rust_abort( ) ;
66
+ unsafe { __rust_abort( ) ; }
61
67
}
62
68
} else if #[ cfg( all( windows, not( miri) ) ) ] {
63
69
// On Windows, use the processor-specific __fastfail mechanism. In Windows 8
@@ -75,11 +81,17 @@ pub unsafe fn __rust_start_panic(_payload: &mut dyn PanicPayload) -> u32 {
75
81
const FAST_FAIL_FATAL_APP_EXIT : usize = 7 ;
76
82
cfg_if:: cfg_if! {
77
83
if #[ cfg( any( target_arch = "x86" , target_arch = "x86_64" ) ) ] {
78
- core:: arch:: asm!( "int $$0x29" , in( "ecx" ) FAST_FAIL_FATAL_APP_EXIT , options( noreturn, nostack) ) ;
84
+ unsafe {
85
+ core:: arch:: asm!( "int $$0x29" , in( "ecx" ) FAST_FAIL_FATAL_APP_EXIT , options( noreturn, nostack) ) ;
86
+ }
79
87
} else if #[ cfg( all( target_arch = "arm" , target_feature = "thumb-mode" ) ) ] {
80
- core:: arch:: asm!( ".inst 0xDEFB" , in( "r0" ) FAST_FAIL_FATAL_APP_EXIT , options( noreturn, nostack) ) ;
88
+ unsafe {
89
+ core:: arch:: asm!( ".inst 0xDEFB" , in( "r0" ) FAST_FAIL_FATAL_APP_EXIT , options( noreturn, nostack) ) ;
90
+ }
81
91
} else if #[ cfg( any( target_arch = "aarch64" , target_arch = "arm64ec" ) ) ] {
82
- core:: arch:: asm!( "brk 0xF003" , in( "x0" ) FAST_FAIL_FATAL_APP_EXIT , options( noreturn, nostack) ) ;
92
+ unsafe {
93
+ core:: arch:: asm!( "brk 0xF003" , in( "x0" ) FAST_FAIL_FATAL_APP_EXIT , options( noreturn, nostack) ) ;
94
+ }
83
95
} else {
84
96
core:: intrinsics:: abort( ) ;
85
97
}
@@ -93,7 +105,7 @@ pub unsafe fn __rust_start_panic(_payload: &mut dyn PanicPayload) -> u32 {
93
105
}
94
106
95
107
unsafe fn abort( ) -> ! {
96
- teeos:: TEE_Panic ( 1 ) ;
108
+ unsafe { teeos:: TEE_Panic ( 1 ) ; }
97
109
}
98
110
} else {
99
111
unsafe fn abort( ) -> ! {
0 commit comments