Skip to content

Commit e3010e8

Browse files
committed
remove support for rustc_safe_intrinsic attribute; use rustc_intrinsic functions instead
1 parent 78bb5ee commit e3010e8

42 files changed

Lines changed: 380 additions & 348 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

‎compiler/rustc_codegen_cranelift/example/mini_core.rs‎

Lines changed: 64 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -616,25 +616,70 @@ pub union MaybeUninit<T> {
616616
}
617617

618618
pubmod intrinsics {
619-
extern"rust-intrinsic"{
620-
#[rustc_safe_intrinsic]
621-
pubfnabort() -> !;
622-
#[rustc_safe_intrinsic]
623-
pubfnsize_of<T>() -> usize;
624-
pubfnsize_of_val<T: ?::Sized>(val:*constT) -> usize;
625-
#[rustc_safe_intrinsic]
626-
pubfnmin_align_of<T>() -> usize;
627-
pubfnmin_align_of_val<T: ?::Sized>(val:*constT) -> usize;
628-
pubfncopy<T>(src:*constT,dst:*mutT,count:usize);
629-
pubfntransmute<T,U>(e:T) -> U;
630-
pubfnctlz_nonzero<T>(x:T) -> u32;
631-
#[rustc_safe_intrinsic]
632-
pubfnneeds_drop<T: ?::Sized>() -> bool;
633-
#[rustc_safe_intrinsic]
634-
pubfnbitreverse<T>(x:T) -> T;
635-
#[rustc_safe_intrinsic]
636-
pubfnbswap<T>(x:T) -> T;
637-
pubfnwrite_bytes<T>(dst:*mutT,val:u8,count:usize);
619+
#[rustc_intrinsic]
620+
#[rustc_intrinsic_must_be_overridden]
621+
pubfnabort() -> ! {
622+
loop{}
623+
}
624+
#[rustc_intrinsic]
625+
#[rustc_intrinsic_must_be_overridden]
626+
pubfnsize_of<T>() -> usize{
627+
loop{}
628+
}
629+
#[rustc_intrinsic]
630+
#[rustc_intrinsic_must_be_overridden]
631+
pubunsafefnsize_of_val<T: ?::Sized>(_val:*constT) -> usize{
632+
loop{}
633+
}
634+
#[rustc_intrinsic]
635+
#[rustc_intrinsic_must_be_overridden]
636+
pubfnmin_align_of<T>() -> usize{
637+
loop{}
638+
}
639+
#[rustc_intrinsic]
640+
#[rustc_intrinsic_must_be_overridden]
641+
pubunsafefnmin_align_of_val<T: ?::Sized>(_val:*constT) -> usize{
642+
loop{}
643+
}
644+
#[rustc_intrinsic]
645+
#[rustc_intrinsic_must_be_overridden]
646+
pubunsafefncopy<T>(_src:*constT,_dst:*mutT,_count:usize){
647+
loop{}
648+
}
649+
#[rustc_intrinsic]
650+
#[rustc_intrinsic_must_be_overridden]
651+
pubunsafefntransmute<T,U>(_e:T) -> U{
652+
loop{}
653+
}
654+
#[rustc_intrinsic]
655+
#[rustc_intrinsic_must_be_overridden]
656+
pubunsafefnctlz_nonzero<T>(_x:T) -> u32{
657+
loop{}
658+
}
659+
#[rustc_intrinsic]
660+
#[rustc_intrinsic_must_be_overridden]
661+
pubfnneeds_drop<T: ?::Sized>() -> bool{
662+
loop{}
663+
}
664+
#[rustc_intrinsic]
665+
#[rustc_intrinsic_must_be_overridden]
666+
pubfnbitreverse<T>(_x:T) -> T{
667+
loop{}
668+
}
669+
#[rustc_intrinsic]
670+
#[rustc_intrinsic_must_be_overridden]
671+
pubfnbswap<T>(_x:T) -> T{
672+
loop{}
673+
}
674+
#[rustc_intrinsic]
675+
#[rustc_intrinsic_must_be_overridden]
676+
pubunsafefnwrite_bytes<T>(_dst:*mutT,_val:u8,_count:usize){
677+
loop{}
678+
}
679+
#[rustc_intrinsic]
680+
#[rustc_intrinsic_must_be_overridden]
681+
pubunsafefnunreachable() -> ! {
682+
loop{}
638683
}
639684
}
640685

‎compiler/rustc_codegen_gcc/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
pubmod intrinsics {
582-
usecrate::Sized;
583-
584-
extern"rust-intrinsic"{
585-
#[rustc_safe_intrinsic]
586-
pubfnabort() -> !;
587-
#[rustc_safe_intrinsic]
588-
pubfnsize_of<T>() -> usize;
589-
pubfnsize_of_val<T: ?Sized>(val:*constT) -> usize;
590-
#[rustc_safe_intrinsic]
591-
pubfnmin_align_of<T>() -> usize;
592-
pubfnmin_align_of_val<T: ?Sized>(val:*constT) -> usize;
593-
pubfncopy<T>(src:*constT,dst:*mutT,count:usize);
594-
pubfntransmute<T,U>(e:T) -> U;
595-
pubfnctlz_nonzero<T>(x:T) -> u32;
596-
#[rustc_safe_intrinsic]
597-
pubfnneeds_drop<T: ?Sized>() -> bool;
598-
#[rustc_safe_intrinsic]
599-
pubfnbitreverse<T>(x:T) -> T;
600-
#[rustc_safe_intrinsic]
601-
pubfnbswap<T>(x:T) -> T;
602-
pubfnwrite_bytes<T>(dst:*mutT,val:u8,count:usize);
603-
pubfnunreachable() -> !;
582+
#[rustc_intrinsic]
583+
#[rustc_intrinsic_must_be_overridden]
584+
pubfnabort() -> ! {
585+
loop{}
586+
}
587+
#[rustc_intrinsic]
588+
#[rustc_intrinsic_must_be_overridden]
589+
pubfnsize_of<T>() -> usize{
590+
loop{}
591+
}
592+
#[rustc_intrinsic]
593+
#[rustc_intrinsic_must_be_overridden]
594+
pubunsafefnsize_of_val<T: ?::Sized>(_val:*constT) -> usize{
595+
loop{}
596+
}
597+
#[rustc_intrinsic]
598+
#[rustc_intrinsic_must_be_overridden]
599+
pubfnmin_align_of<T>() -> usize{
600+
loop{}
601+
}
602+
#[rustc_intrinsic]
603+
#[rustc_intrinsic_must_be_overridden]
604+
pubunsafefnmin_align_of_val<T: ?::Sized>(_val:*constT) -> usize{
605+
loop{}
606+
}
607+
#[rustc_intrinsic]
608+
#[rustc_intrinsic_must_be_overridden]
609+
pubunsafefncopy<T>(_src:*constT,_dst:*mutT,_count:usize){
610+
loop{}
611+
}
612+
#[rustc_intrinsic]
613+
#[rustc_intrinsic_must_be_overridden]
614+
pubunsafefntransmute<T,U>(_e:T) -> U{
615+
loop{}
616+
}
617+
#[rustc_intrinsic]
618+
#[rustc_intrinsic_must_be_overridden]
619+
pubunsafefnctlz_nonzero<T>(_x:T) -> u32{
620+
loop{}
621+
}
622+
#[rustc_intrinsic]
623+
#[rustc_intrinsic_must_be_overridden]
624+
pubfnneeds_drop<T: ?::Sized>() -> bool{
625+
loop{}
626+
}
627+
#[rustc_intrinsic]
628+
#[rustc_intrinsic_must_be_overridden]
629+
pubfnbitreverse<T>(_x:T) -> T{
630+
loop{}
631+
}
632+
#[rustc_intrinsic]
633+
#[rustc_intrinsic_must_be_overridden]
634+
pubfnbswap<T>(_x:T) -> T{
635+
loop{}
636+
}
637+
#[rustc_intrinsic]
638+
#[rustc_intrinsic_must_be_overridden]
639+
pubunsafefnwrite_bytes<T>(_dst:*mutT,_val:u8,_count:usize){
640+
loop{}
641+
}
642+
#[rustc_intrinsic]
643+
#[rustc_intrinsic_must_be_overridden]
644+
pubunsafefnunreachable() -> ! {
645+
loop{}
604646
}
605647
}
606648

‎compiler/rustc_codegen_gcc/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
usesuper::Sized;
3535

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

‎compiler/rustc_codegen_gcc/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
usesuper::Sized;
3535

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

‎compiler/rustc_codegen_gcc/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-
pubfnabort() -> !;
109+
#[rustc_nounwind]
110+
#[rustc_intrinsic]
111+
#[rustc_intrinsic_must_be_overridden]
112+
pubfnabort() -> ! {
113+
loop{}
112114
}
113115
}
114116

‎compiler/rustc_codegen_gcc/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-
pubfnabort() -> !;
59+
#[rustc_nounwind]
60+
#[rustc_intrinsic]
61+
#[rustc_intrinsic_must_be_overridden]
62+
pubfnabort() -> ! {
63+
loop{}
6264
}
6365
}
6466

‎compiler/rustc_codegen_gcc/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-
pubfnabort() -> !;
101+
#[rustc_nounwind]
102+
#[rustc_intrinsic]
103+
#[rustc_intrinsic_must_be_overridden]
104+
pubfnabort() -> ! {
105+
loop{}
104106
}
105107
}
106108

‎compiler/rustc_codegen_gcc/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-
pubfnabort() -> !;
112+
#[rustc_nounwind]
113+
#[rustc_intrinsic]
114+
#[rustc_intrinsic_must_be_overridden]
115+
pubfnabort() -> ! {
116+
loop{}
115117
}
116118
}
117119

‎compiler/rustc_codegen_gcc/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-
pubfnabort() -> !;
106+
#[rustc_nounwind]
107+
#[rustc_intrinsic]
108+
#[rustc_intrinsic_must_be_overridden]
109+
pubfnabort() -> ! {
110+
loop{}
109111
}
110112
}
111113

‎compiler/rustc_codegen_gcc/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-
pubfnabort() -> !;
61+
#[rustc_nounwind]
62+
#[rustc_intrinsic]
63+
#[rustc_intrinsic_must_be_overridden]
64+
pubfnabort() -> ! {
65+
loop{}
6466
}
6567
}
6668

0 commit comments

Comments
 (0)