Skip to content

Commit f036898

Browse files
committed
remove support for rustc_safe_intrinsic attribute; use rustc_intrinsic functions instead
1 parent c0e98de commit f036898

File tree

13 files changed

+124
-58
lines changed

13 files changed

+124
-58
lines changed

example/mini_core.rs

Lines changed: 64 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -579,28 +579,70 @@ pub union MaybeUninit<T> {
579579
}
580580

581581
pub mod intrinsics {
582-
use crate::Sized;
583-
584-
extern "rust-intrinsic" {
585-
#[rustc_safe_intrinsic]
586-
pub fn abort() -> !;
587-
#[rustc_safe_intrinsic]
588-
pub fn size_of<T>() -> usize;
589-
pub fn size_of_val<T: ?Sized>(val: *const T) -> usize;
590-
#[rustc_safe_intrinsic]
591-
pub fn min_align_of<T>() -> usize;
592-
pub fn min_align_of_val<T: ?Sized>(val: *const T) -> usize;
593-
pub fn copy<T>(src: *const T, dst: *mut T, count: usize);
594-
pub fn transmute<T, U>(e: T) -> U;
595-
pub fn ctlz_nonzero<T>(x: T) -> u32;
596-
#[rustc_safe_intrinsic]
597-
pub fn needs_drop<T: ?Sized>() -> bool;
598-
#[rustc_safe_intrinsic]
599-
pub fn bitreverse<T>(x: T) -> T;
600-
#[rustc_safe_intrinsic]
601-
pub fn bswap<T>(x: T) -> T;
602-
pub fn write_bytes<T>(dst: *mut T, val: u8, count: usize);
603-
pub fn unreachable() -> !;
582+
#[rustc_intrinsic]
583+
#[rustc_intrinsic_must_be_overridden]
584+
pub fn abort() -> ! {
585+
loop {}
586+
}
587+
#[rustc_intrinsic]
588+
#[rustc_intrinsic_must_be_overridden]
589+
pub fn size_of<T>() -> usize {
590+
loop {}
591+
}
592+
#[rustc_intrinsic]
593+
#[rustc_intrinsic_must_be_overridden]
594+
pub unsafe fn size_of_val<T: ?::Sized>(_val: *const T) -> usize {
595+
loop {}
596+
}
597+
#[rustc_intrinsic]
598+
#[rustc_intrinsic_must_be_overridden]
599+
pub fn min_align_of<T>() -> usize {
600+
loop {}
601+
}
602+
#[rustc_intrinsic]
603+
#[rustc_intrinsic_must_be_overridden]
604+
pub unsafe fn min_align_of_val<T: ?::Sized>(_val: *const T) -> usize {
605+
loop {}
606+
}
607+
#[rustc_intrinsic]
608+
#[rustc_intrinsic_must_be_overridden]
609+
pub unsafe fn copy<T>(_src: *const T, _dst: *mut T, _count: usize) {
610+
loop {}
611+
}
612+
#[rustc_intrinsic]
613+
#[rustc_intrinsic_must_be_overridden]
614+
pub unsafe fn transmute<T, U>(_e: T) -> U {
615+
loop {}
616+
}
617+
#[rustc_intrinsic]
618+
#[rustc_intrinsic_must_be_overridden]
619+
pub unsafe fn ctlz_nonzero<T>(_x: T) -> u32 {
620+
loop {}
621+
}
622+
#[rustc_intrinsic]
623+
#[rustc_intrinsic_must_be_overridden]
624+
pub fn needs_drop<T: ?::Sized>() -> bool {
625+
loop {}
626+
}
627+
#[rustc_intrinsic]
628+
#[rustc_intrinsic_must_be_overridden]
629+
pub fn bitreverse<T>(_x: T) -> T {
630+
loop {}
631+
}
632+
#[rustc_intrinsic]
633+
#[rustc_intrinsic_must_be_overridden]
634+
pub fn bswap<T>(_x: T) -> T {
635+
loop {}
636+
}
637+
#[rustc_intrinsic]
638+
#[rustc_intrinsic_must_be_overridden]
639+
pub unsafe fn write_bytes<T>(_dst: *mut T, _val: u8, _count: usize) {
640+
loop {}
641+
}
642+
#[rustc_intrinsic]
643+
#[rustc_intrinsic_must_be_overridden]
644+
pub unsafe fn unreachable() -> ! {
645+
loop {}
604646
}
605647
}
606648

tests/run/abort1.rs

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,9 +33,11 @@ pub(crate) unsafe auto trait Freeze {}
3333
mod intrinsics {
3434
use super::Sized;
3535

36-
extern "rust-intrinsic" {
37-
#[rustc_safe_intrinsic]
38-
pub fn abort() -> !;
36+
#[rustc_nounwind]
37+
#[rustc_intrinsic]
38+
#[rustc_intrinsic_must_be_overridden]
39+
pub fn abort() -> ! {
40+
loop {}
3941
}
4042
}
4143

tests/run/abort2.rs

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,9 +33,11 @@ pub(crate) unsafe auto trait Freeze {}
3333
mod intrinsics {
3434
use super::Sized;
3535

36-
extern "rust-intrinsic" {
37-
#[rustc_safe_intrinsic]
38-
pub fn abort() -> !;
36+
#[rustc_nounwind]
37+
#[rustc_intrinsic]
38+
#[rustc_intrinsic_must_be_overridden]
39+
pub fn abort() -> ! {
40+
loop {}
3941
}
4042
}
4143

tests/run/array.rs

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -106,9 +106,11 @@ fn panic_bounds_check(index: usize, len: usize) -> ! {
106106
}
107107

108108
mod intrinsics {
109-
extern "rust-intrinsic" {
110-
#[rustc_safe_intrinsic]
111-
pub fn abort() -> !;
109+
#[rustc_nounwind]
110+
#[rustc_intrinsic]
111+
#[rustc_intrinsic_must_be_overridden]
112+
pub fn abort() -> ! {
113+
loop {}
112114
}
113115
}
114116

tests/run/assign.rs

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -56,9 +56,11 @@ mod libc {
5656
}
5757

5858
mod intrinsics {
59-
extern "rust-intrinsic" {
60-
#[rustc_safe_intrinsic]
61-
pub fn abort() -> !;
59+
#[rustc_nounwind]
60+
#[rustc_intrinsic]
61+
#[rustc_intrinsic_must_be_overridden]
62+
pub fn abort() -> ! {
63+
loop {}
6264
}
6365
}
6466

tests/run/closure.rs

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -98,9 +98,11 @@ fn panic_bounds_check(index: usize, len: usize) -> ! {
9898
}
9999

100100
mod intrinsics {
101-
extern "rust-intrinsic" {
102-
#[rustc_safe_intrinsic]
103-
pub fn abort() -> !;
101+
#[rustc_nounwind]
102+
#[rustc_intrinsic]
103+
#[rustc_intrinsic_must_be_overridden]
104+
pub fn abort() -> ! {
105+
loop {}
104106
}
105107
}
106108

tests/run/condition.rs

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -109,9 +109,11 @@ fn panic_bounds_check(index: usize, len: usize) -> ! {
109109
}
110110

111111
mod intrinsics {
112-
extern "rust-intrinsic" {
113-
#[rustc_safe_intrinsic]
114-
pub fn abort() -> !;
112+
#[rustc_nounwind]
113+
#[rustc_intrinsic]
114+
#[rustc_intrinsic_must_be_overridden]
115+
pub fn abort() -> ! {
116+
loop {}
115117
}
116118
}
117119

tests/run/fun_ptr.rs

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -103,9 +103,11 @@ fn panic_bounds_check(index: usize, len: usize) -> ! {
103103
}
104104

105105
mod intrinsics {
106-
extern "rust-intrinsic" {
107-
#[rustc_safe_intrinsic]
108-
pub fn abort() -> !;
106+
#[rustc_nounwind]
107+
#[rustc_intrinsic]
108+
#[rustc_intrinsic_must_be_overridden]
109+
pub fn abort() -> ! {
110+
loop {}
109111
}
110112
}
111113

tests/run/mut_ref.rs

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -58,9 +58,11 @@ mod libc {
5858
}
5959

6060
mod intrinsics {
61-
extern "rust-intrinsic" {
62-
#[rustc_safe_intrinsic]
63-
pub fn abort() -> !;
61+
#[rustc_nounwind]
62+
#[rustc_intrinsic]
63+
#[rustc_intrinsic_must_be_overridden]
64+
pub fn abort() -> ! {
65+
loop {}
6466
}
6567
}
6668

tests/run/operations.rs

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -64,9 +64,11 @@ mod libc {
6464
}
6565

6666
mod intrinsics {
67-
extern "rust-intrinsic" {
68-
#[rustc_safe_intrinsic]
69-
pub fn abort() -> !;
67+
#[rustc_nounwind]
68+
#[rustc_intrinsic]
69+
#[rustc_intrinsic_must_be_overridden]
70+
pub fn abort() -> ! {
71+
loop {}
7072
}
7173
}
7274

0 commit comments

Comments
 (0)