diff options
| author | Jubilee <workingjubilee@gmail.com> | 2024-11-03 20:08:13 -0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-11-03 20:08:13 -0800 |
| commit | 3313e760d03c05d027e7720f159a805b5b21c5a0 (patch) | |
| tree | dc1aa9b46e557e2a10431fa429d28ec534c5012f /compiler/rustc_codegen_llvm/src | |
| parent | f35433e25071c236327921898745a182b2aa8c83 (diff) | |
| parent | 19e287060de9a641d7000a5575bb943a9bfba318 (diff) | |
| download | rust-3313e760d03c05d027e7720f159a805b5b21c5a0.tar.gz rust-3313e760d03c05d027e7720f159a805b5b21c5a0.zip | |
Rollup merge of #132423 - RalfJung:const-eval-align-offset, r=dtolnay
remove const-support for align_offset and is_aligned As part of the recent discussion to stabilize `ptr.is_null()` in const context, the general vibe was that it's okay for a const function to panic when the same operation would work at runtime (that's just a case of "dynamically detecting that something is not supported as a const operation"), but it is *not* okay for a const function to just return a different result. Following that, `is_aligned` and `is_aligned_to` have their const status revoked in this PR, since they do return actively wrong results at const time. In the future we can consider having a new intrinsic or so that can check whether a pointer is "guaranteed to be aligned", but the current implementation based on `align_offset` does not have the behavior we want. In fact `align_offset` itself behaves quite strangely in const, and that support needs a bunch of special hacks. That doesn't seem worth it. Instead, the users that can fall back to a different implementation should just use const_eval_select directly, and everything else should not be made const-callable. So this PR does exactly that, and entirely removes const support for align_offset. Closes some tracking issues by removing the associated features: Closes https://github.com/rust-lang/rust/issues/90962 Closes https://github.com/rust-lang/rust/issues/104203 Cc `@rust-lang/wg-const-eval` `@rust-lang/libs-api`
Diffstat (limited to 'compiler/rustc_codegen_llvm/src')
0 files changed, 0 insertions, 0 deletions
