File tree 2 files changed +6
-9
lines changed
library/core/src/intrinsics
src/doc/unstable-book/src/language-features
2 files changed +6
-9
lines changed Original file line number Diff line number Diff line change 5
5
//!
6
6
//! # Const intrinsics
7
7
//!
8
- //! Note: any changes to the constness of intrinsics should be discussed with the language team.
9
- //! This includes changes in the stability of the constness.
10
- //!
11
- //! //FIXME(#132735) "old" style intrinsics support has been removed
12
- //! In order to make an intrinsic usable at compile-time, it needs to be declared in the "new"
13
- //! style, i.e. as a `#[rustc_intrinsic]` function, not inside an `extern` block. Then copy the
14
- //! implementation from <https://github.com/rust-lang/miri/blob/master/src/intrinsics> to
8
+ //! In order to make an intrinsic unstable usable at compile-time, copy the implementation from
9
+ //! <https://github.com/rust-lang/miri/blob/master/src/intrinsics> to
15
10
//! <https://github.com/rust-lang/rust/blob/master/compiler/rustc_const_eval/src/interpret/intrinsics.rs>
16
- //! and make the intrinsic declaration a `const fn`.
11
+ //! and make the intrinsic declaration below a `const fn`. This should be done in coordination with
12
+ //! wg-const-eval.
17
13
//!
18
14
//! If an intrinsic is supposed to be used from a `const fn` with a `rustc_const_stable` attribute,
19
15
//! `#[rustc_intrinsic_const_stable_indirect]` needs to be added to the intrinsic. Such a change requires
Original file line number Diff line number Diff line change @@ -53,7 +53,8 @@ Various intrinsics have native MIR operations that they correspond to. Instead o
53
53
backends to implement both the intrinsic and the MIR operation, the ` lower_intrinsics ` pass
54
54
will convert the calls to the MIR operation. Backends do not need to know about these intrinsics
55
55
at all. These intrinsics only make sense without a body, and can be declared as a ` #[rustc_intrinsic] ` .
56
- The body is never used, as calls to the intrinsic do not exist anymore after MIR analyses.
56
+ The body is never used as the lowering pass implements support for all backends, so we never have to
57
+ use the fallback logic.
57
58
58
59
## Intrinsics without fallback logic
59
60
You can’t perform that action at this time.
0 commit comments