about summary refs log tree commit diff
path: root/compiler/rustc_codegen_llvm/src/errors.rs
diff options
context:
space:
mode:
authorJubilee <workingjubilee@gmail.com>2024-11-04 20:40:46 -0800
committerGitHub <noreply@github.com>2024-11-04 20:40:46 -0800
commit23ef001d662787a73829a2653e63877bc16db008 (patch)
tree01341a7709fccb44861f3b5ff90e0108370ea791 /compiler/rustc_codegen_llvm/src/errors.rs
parent56aa51e67f40dc06bc7101dcac20cdfaeb1daa01 (diff)
parenta741b33c145a5f1fa3e7f42a4488750ce8719d4f (diff)
downloadrust-23ef001d662787a73829a2653e63877bc16db008.tar.gz
rust-23ef001d662787a73829a2653e63877bc16db008.zip
Rollup merge of #132492 - RalfJung:const-intrinsics, r=compiler-errors
remove support for extern-block const intrinsics

This converts all const-callable intrinsics into the "new" form of a regular `fn` with `#[rustc_intrinsic]` attribute. That simplifies some of the logic since those functions can be marked `const fn` like regular functions, so intrinsics no longer need a special case to be considered const-callable at all.

I also added a new attribute `#[rustc_const_stable_intrinsic]` to mark an intrinsic as being ready to be exposed on stable. Previously we used the `#[rustc_const_stable_indirect]` attribute for that, but that attribute had a dual role -- when used on a regular function, it is an entirely safe marker to make this function part of recursive const stability, but on an intrinsic it is a trusted marker requiring special care. It's not great for the same attribute to be sometimes fully checked and safe, and sometimes trusted and requiring special care, so I split this into two attributes.

This also fixes https://github.com/rust-lang/rust/issues/122652 by accepting intrinsics as const-stable if they have a fallback body that is recursively const-stable.

The library changes are best reviewed with whitespace hidden.

r? `@compiler-errors`
Diffstat (limited to 'compiler/rustc_codegen_llvm/src/errors.rs')
0 files changed, 0 insertions, 0 deletions