3 ms·
> has a not broken implementation of restrict (which should be useful for Rust) The most recent restrict bug the rustc developers found (which made they disabl
by cesarb 7y ago
> has a not broken implementation of restrict (which should be useful for Rust)
The most recent restrict bug the rustc developers found (which made they disable restrict again) was found in both LLVM and GCC (they made a C reproducer, so they could test in both). See: https://github.com/rust-lang/rust/issues/54878 https://github.com/rust-lang/rust/issues/54878 (rustc) https://bugs.llvm.org/show_bug.cgi?id=39282 https://bugs.llvm.org/show_bug.cgi?id=39282 (LLVM) https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87609 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87609 (GCC).
- sanxiyn 7y agoNote that GCC bug is now fixed. LLVM bug isn't.
- cwzwarich 7y agoThe interiteration issue with LLVM's noalias has been known for years: https://reviews.llvm.org/D9375 https://reviews.llvm.org/D9375 I even filed a version of it myself: https://bugs.llvm.org/show_bug.cgi?id=27955 https://bugs.llvm.org/show_bug.cgi?id=27955 I'm actually surprised that Rust enabled noalias usage with this known outstanding issue. When I worked on Rust years ago, it was definitely common knowledge on the compiler "team" that this was broken. I'm equally surprised that GCC had that bug, since their pointer aliasing model is equipped to correctly handle this situation (and is why they were able to fix it quickly).