@@ -6346,12 +6346,10 @@ void irgen::emitAsyncReturn(IRGenFunction &IGF, AsyncContextLayout &asyncLayout,
63466346 if (combinedTy->isVoidTy ()) {
63476347 assert (result.empty () && " Unexpected result values" );
63486348 } else {
6349- Explosion native = nativeSchema.mapIntoNative (
6350- IGM, IGF, result, funcResultTypeInContext, /* isOutlined*/ false );
63516349 if (auto *structTy = dyn_cast<llvm::StructType>(combinedTy)) {
63526350 llvm::Value *nativeAgg = llvm::UndefValue::get (structTy);
6353- for (unsigned i = 0 , e = native .size (); i < e; ++i) {
6354- llvm::Value *elt = native .claimNext ();
6351+ for (unsigned i = 0 , e = result .size (); i < e; ++i) {
6352+ llvm::Value *elt = result .claimNext ();
63556353 auto *nativeTy = structTy->getElementType (i);
63566354 elt = convertForDirectError (IGF, elt, nativeTy,
63576355 /* forExtraction*/ false );
@@ -6362,9 +6360,9 @@ void irgen::emitAsyncReturn(IRGenFunction &IGF, AsyncContextLayout &asyncLayout,
63626360 while (!out.empty ()) {
63636361 nativeResultsStorage.push_back (out.claimNext ());
63646362 }
6365- } else if (!native .empty ()) {
6363+ } else if (!result .empty ()) {
63666364 auto *converted = convertForDirectError (
6367- IGF, native .claimNext (), combinedTy, /* forExtraction*/ false );
6365+ IGF, result .claimNext (), combinedTy, /* forExtraction*/ false );
63686366 nativeResultsStorage.push_back (converted);
63696367 } else {
63706368 nativeResultsStorage.push_back (llvm::UndefValue::get (combinedTy));
0 commit comments