[qt/clang/llvm-project]: Summary of bulk changes made
KDE Git Services - Bulk Change <[email protected]>
| Newsgroups | gmane.comp.kde.cvs |
|---|---|
| Message-ID | <[email protected]> |
Git repository change summary for qt/clang/llvm-project Pushed by mirror-service into branch 'upstream/users/yuxuanchen1997/fix-coro-halo-suspend-never-bad-free'. Changed from f3528f86ab969030210998333741c0d6bbc2e902 to f5d6b459cd57b967b856c8f6855d2459a686f693 Acknowledgement was received that this change introduces only existing code that has been pushed to another public open source repository. This change contains the following new commits: Git commit f5d6b459cd57b967b856c8f6855d2459a686f693 by Yuxuan Chen on 21/07/2026 at 04:35.. Fix coro.free in .resume clones when [[clang::coro_await_elidable]] is used with suspend_never final suspend Fixes https://github.com/llvm/llvm-project/issues/188230 CoroAnnotationElide rewrites annotated safe calls to the .noalloc variant. The noalloc frame is caller-owned, but its .resume clone is shared with ordinary heap-allocated instances. With a suspend_never final suspend, normal resumption falls through to the coro.free-based deallocation path. Regular frontend cleanup has already run before this point. coro.free must therefore produce the frame pointer for a heap instance and null for a .noalloc instance. Use the frame destroy slot as a per-instance allocation tag. Cache its value at resume entry, before user code can resume and release the enclosing caller frame, then compare it with the cleanup clone. Replace each coro.free result with the frame pointer for a heap instance and null for an elided instance. Update the CoroSplit and Clang CodeGen checks to cover the conditional deallocation and the original suspend_never final-suspend shape. Assisted-By: Codex GPT 5.5 https://invent.kde.org/qt/clang/llvm-project/-/commit/f5d6b459cd57b967b856c8f6855d2459a686f693