[clang] [CIR] Function calls with aggregate arguments and return values (PR #143377)
Andy Kaylor via cfe-commits
cfe-commits at lists.llvm.org
Mon Jun 9 13:04:51 PDT 2025
================
@@ -312,8 +329,47 @@ RValue CIRGenFunction::emitCall(const CIRGenFunctionInfo &funcInfo,
assert(!cir::MissingFeatures::opCallBitcastArg());
cirCallArgs[argNo] = v;
} else {
- assert(!cir::MissingFeatures::opCallAggregateArgs());
- cgm.errorNYI("emitCall: aggregate function call argument");
+ Address src = Address::invalid();
+ if (!arg.isAggregate())
+ cgm.errorNYI(loc, "emitCall: non-aggregate call argument");
+ else
+ src = arg.hasLValue() ? arg.getKnownLValue().getAddress()
+ : arg.getKnownRValue().getAggregateAddress();
----------------
andykaylor wrote:
Are both of these cases covered in the test?
https://github.com/llvm/llvm-project/pull/143377
More information about the cfe-commits
mailing list