… aggregate test Handle PredefinedExpr by delegating to emitAggLoadOfLValue, removing the NYI fallback. Also add a test for ConstantExpr aggregate emission (consteval functions returning structs), which was already implemented but lacked test coverage. This unblocks ~206 libcxx test failures that involve aggregate ConstantExpr and PredefinedExpr. Note on LLVM IR divergence (will be addressed in follow-up PRs): For consteval functions returning aggregates, CIR currently emits a global constant + cir.copy that lowers to llvm.memcpy from the global, while OGCG decomposes the constant into per-field stores. The added CIR / LLVM / OGCG CHECK lines in consteval-aggregate.cpp document this difference. Convergence will come from a follow-up that decomposes the consteval aggregate stores into per-field stores in LoweringPrepare (and related GEP-index handling for padded structs).
1.7 KiB
1.7 KiB