diff options
| author | Jonas Schievink <jonasschievink@gmail.com> | 2020-11-15 13:40:03 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-11-15 13:40:03 +0100 |
| commit | ae1916b3b4ef4da9781199063981dbb5a4123714 (patch) | |
| tree | 980588a0a7fa8e7869072a99bf4db7a0bf8b8f3c /compiler/rustc_codegen_llvm/src | |
| parent | bc9ef6cf72ba7f8f70dca18d50e1ab2492efa31a (diff) | |
| parent | afb817054c7e95ef1cef879030062b67d5a2d5e3 (diff) | |
| download | rust-ae1916b3b4ef4da9781199063981dbb5a4123714.tar.gz rust-ae1916b3b4ef4da9781199063981dbb5a4123714.zip | |
Rollup merge of #79058 - dtolnay:likelymacro, r=Mark-Simulacrum
Move likely/unlikely argument outside of invisible unsafe block
The previous `likely!`/`unlikely!` macros were unsound because it permits the caller's expr to contain arbitrary unsafe code.
```rust
pub fn huh() -> bool {
likely!(std::ptr::read(&() as *const () as *const bool))
}
```
**Before:** compiles cleanly.
**After:**
```console
error[E0133]: call to unsafe function is unsafe and requires unsafe function or block
|
70 | likely!(std::ptr::read(&() as *const () as *const bool))
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
|
= note: consult the function's documentation for information on how to avoid undefined behavior
```
Diffstat (limited to 'compiler/rustc_codegen_llvm/src')
0 files changed, 0 insertions, 0 deletions
