about summary refs log tree commit diff
path: root/compiler/rustc_parse/src/errors.rs
diff options
context:
space:
mode:
authorMatthias Krüger <476013+matthiaskrgr@users.noreply.github.com>2025-05-21 08:05:21 +0200
committerGitHub <noreply@github.com>2025-05-21 08:05:21 +0200
commitbb7291e71ba1461d273379a762bb1e5bab9ca8c1 (patch)
tree686eb07b543ceb8449660929647f8d1438bc286b /compiler/rustc_parse/src/errors.rs
parentc5920278d398480c49138d71bdcfdaa8bcbfc182 (diff)
parent9d1cf125f8ba4e509d5eacc2193b6b2c0999f9e1 (diff)
downloadrust-bb7291e71ba1461d273379a762bb1e5bab9ca8c1.tar.gz
rust-bb7291e71ba1461d273379a762bb1e5bab9ca8c1.zip
Rollup merge of #141222 - mathisbot:ptr_trycastaligned, r=tgross35
Implement `ptr::try_cast_aligned` and `NonNull::try_cast_aligned`.

Implement three common methods on raw pointers and `NonNull`s: `try_cast_aligned`.

## Related links

- Tracking Issue: https://github.com/rust-lang/rust/issues/141221

## About `#[inline]`

Since the result of a call to `align_of` is a power of two known at compile time, the compiler is able to reduce a call to `try_cast_aligned` to only test and sete (or test and jne if followed by `unwrap`), at least on every tier 1 target's arch. This seemed like a good reason to `#[inline]` the function.

- https://godbolt.org/z/ocehvPWMx (raw inlining)
- https://godbolt.org/z/3qa4j4Yrn (comparison with no inlining)
Diffstat (limited to 'compiler/rustc_parse/src/errors.rs')
0 files changed, 0 insertions, 0 deletions