mirror of
https://github.com/rust-lang/rust.git
synced 2024-10-30 05:51:58 +00:00
Use renamed atomic intrinsics in panic_unwind
This commit is contained in:
parent
3bc5e322cf
commit
f5db0c7110
@ -256,7 +256,7 @@ cfg_if::cfg_if! {
|
||||
}
|
||||
|
||||
pub unsafe fn panic(data: Box<dyn Any + Send>) -> u32 {
|
||||
use core::intrinsics::atomic_store;
|
||||
use core::intrinsics::atomic_store_seqcst;
|
||||
|
||||
// _CxxThrowException executes entirely on this stack frame, so there's no
|
||||
// need to otherwise transfer `data` to the heap. We just pass a stack
|
||||
@ -288,20 +288,23 @@ pub unsafe fn panic(data: Box<dyn Any + Send>) -> u32 {
|
||||
//
|
||||
// In any case, we basically need to do something like this until we can
|
||||
// express more operations in statics (and we may never be able to).
|
||||
atomic_store(&mut THROW_INFO.pmfnUnwind as *mut _ as *mut u32, ptr!(exception_cleanup) as u32);
|
||||
atomic_store(
|
||||
atomic_store_seqcst(
|
||||
&mut THROW_INFO.pmfnUnwind as *mut _ as *mut u32,
|
||||
ptr!(exception_cleanup) as u32,
|
||||
);
|
||||
atomic_store_seqcst(
|
||||
&mut THROW_INFO.pCatchableTypeArray as *mut _ as *mut u32,
|
||||
ptr!(&CATCHABLE_TYPE_ARRAY as *const _) as u32,
|
||||
);
|
||||
atomic_store(
|
||||
atomic_store_seqcst(
|
||||
&mut CATCHABLE_TYPE_ARRAY.arrayOfCatchableTypes[0] as *mut _ as *mut u32,
|
||||
ptr!(&CATCHABLE_TYPE as *const _) as u32,
|
||||
);
|
||||
atomic_store(
|
||||
atomic_store_seqcst(
|
||||
&mut CATCHABLE_TYPE.pType as *mut _ as *mut u32,
|
||||
ptr!(&TYPE_DESCRIPTOR as *const _) as u32,
|
||||
);
|
||||
atomic_store(
|
||||
atomic_store_seqcst(
|
||||
&mut CATCHABLE_TYPE.copyFunction as *mut _ as *mut u32,
|
||||
ptr!(exception_copy) as u32,
|
||||
);
|
||||
|
Loading…
Reference in New Issue
Block a user