@@ -6945,9 +6945,8 @@ fn hover_feature() {
6945
6945
Various intrinsics have native MIR operations that they correspond to. Instead of requiring
6946
6946
backends to implement both the intrinsic and the MIR operation, the `lower_intrinsics` pass
6947
6947
will convert the calls to the MIR operation. Backends do not need to know about these intrinsics
6948
- at all. These intrinsics only make sense without a body, and can either be declared as a "rust-intrinsic"
6949
- or as a `#[rustc_intrinsic]`. The body is never used, as calls to the intrinsic do not exist
6950
- anymore after MIR analyses.
6948
+ at all. These intrinsics only make sense without a body, and can be as a `#[rustc_intrinsic]`.
6949
+ The body is never used, as calls to the intrinsic do not exist anymore after MIR analyses.
6951
6950
6952
6951
## Intrinsics without fallback logic
6953
6952
@@ -6960,29 +6959,6 @@ fn hover_feature() {
6960
6959
`#[rustc_intrinsic_must_be_overridden]` to the function to ensure that backends don't
6961
6960
invoke the body.
6962
6961
6963
- ### Legacy extern ABI based intrinsics
6964
-
6965
- These are imported as if they were FFI functions, with the special
6966
- `rust-intrinsic` ABI. For example, if one was in a freestanding
6967
- context, but wished to be able to `transmute` between types, and
6968
- perform efficient pointer arithmetic, one would import those functions
6969
- via a declaration like
6970
-
6971
- ```rust
6972
- #![feature(intrinsics)]
6973
- #![allow(internal_features)]
6974
- # fn main() {}
6975
-
6976
- extern "rust-intrinsic" {
6977
- fn transmute<T, U>(x: T) -> U;
6978
-
6979
- fn arith_offset<T>(dst: *const T, offset: isize) -> *const T;
6980
- }
6981
- ```
6982
-
6983
- As with any other FFI functions, these are by default always `unsafe` to call.
6984
- You can add `#[rustc_safe_intrinsic]` to the intrinsic to make it safe to call.
6985
-
6986
6962
"# ] ] ,
6987
6963
)
6988
6964
}
0 commit comments