llvm-project
b32b31e6 - [LifetimeSafety] Fix compiler crash with `static operator()` (#187853)

Commit
31 days ago
[LifetimeSafety] Fix compiler crash with `static operator()` (#187853) This PR removes the first argument from the `Args` list (which is `S()`) before doing lifetime safety checks to ensure correct indexing. It also adds a test to prevent regressions in the future Fixes #187426 <details> <summary>Bug details</summary> When calling a `static operator()` directly (with `S()(...)`), we also store `S()` in `Args` as the first argument, so all indexing is off by one. The most interesting part is that `S::operator()(...)` works correctly and does not add `S()` at the beginning of the argument list, so it does not crash during lifetime checks. This solution is probably not the cleanest, but I would love to hear feedback on where to put it! </details>
Author
Parents
Loading