llvmorg-github-actions[bot] wrote:
<!--LLVM PR SUMMARY COMMENT--> @llvm/pr-subscribers-clang Author: Aman Maurya (amanmaurya92) <details> <summary>Changes</summary> Implement support for evaluating `co_await` and `co_yield` expressions whose result is an aggregate type in `AggExprEmitter`. ### Summary of Changes: 1. **`AggExprEmitter`**: - Implement `VisitCoawaitExpr` and `VisitCoyieldExpr` by delegating to `emitCoawaitExpr` and `emitCoyieldExpr` with the destination `AggValueSlot`. - Implement `VisitUnaryCoawait` by visiting the subexpression, matching classic Clang (`CGExprAgg.cpp`). 2. **`CIRGenCoroutine.cpp`**: - In `emitSuspendExpression`: Omit the scalar/complex `__coawait_resume_rval` temporary alloca for aggregate return values, as the aggregate is emitted directly into `aggSlot`. - In `emitSuspendExpr`: Remove the `emitSuspendExpr Aggregate` NYI assertion left as a TODO in #<!-- -->194027, return `rval` directly, and defensively instantiate an aggregate temporary slot when `aggSlot.isIgnored()`. 3. **Tests**: - Add `clang/test/CIR/CodeGenCoroutines/coro-agg.cpp` covering used and unused results for aggregate `co_await` and `co_yield`. Fixes #<!-- -->225317 Resolves Row 11 in the August 2026 ClangIR Progress Report. --- Full diff: https://github.com/llvm/llvm-project/pull/225412.diff 3 Files Affected: - (modified) clang/lib/CIR/CodeGen/CIRGenCoroutine.cpp (+18-19) - (modified) clang/lib/CIR/CodeGen/CIRGenExprAggregate.cpp (+3-5) - (added) clang/test/CIR/CodeGenCoroutines/coro-agg.cpp (+72) ``````````diff The server is unavailable at this time. Please wait a few minutes before you try again. `````````` </details> https://github.com/llvm/llvm-project/pull/225412 _______________________________________________ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
