| Age | Commit message (Collapse) | Author | Lines | |
|---|---|---|---|---|
| 2023-07-27 | CHECK only for opaque ptr | Josh Stone | -3/+3 | |
| 2023-03-16 | Use poison instead of undef | Nikita Popov | -1/+1 | |
| In cases where it is legal, we should prefer poison values over undef values. This replaces undef with poison for aggregate construction and for uninhabited types. There are more places where we can likely use poison, but I wanted to stay conservative to start with. In particular the aggregate case is important for newer LLVM versions, which are not able to handle an undef base value during early optimization due to poison-propagation concerns. | ||||
| 2023-01-17 | Add more codegen tests | Nilstrieb | -2/+2 | |
| 2023-01-17 | Put `noundef` on all scalars that don't allow uninit | Nilstrieb | -1/+1 | |
| Previously, it was only put on scalars with range validity invariants like bool, was uninit was obviously invalid for those. Since then, we have normatively declared all uninit primitives to be undefined behavior and can therefore put `noundef` on them. The remaining concern was the `mem::uninitialized` function, which cause quite a lot of UB in the older parts of the ecosystem. This function now doesn't return uninit values anymore, making users of it safe from this change. The only real sources of UB where people could encounter uninit primitives are `MaybeUninit::uninit().assume_init()`, which has always be clear in the docs about being UB and from heap allocations (like reading from the spare capacity of a vec. This is hopefully rare enough to not break anything. | ||||
| 2023-01-11 | Move /src/test to /tests | Albert Larsan | -0/+29 | |
