From 75a5a3695b77b52841dc3319bf246a58e30a4391 Mon Sep 17 00:00:00 2001 From: Brian Fiete Date: Wed, 20 Nov 2024 09:26:32 -0500 Subject: [PATCH] Fixed conversion of zero-sized array to span --- IDEHelper/Compiler/BfModuleTypeUtils.cpp | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/IDEHelper/Compiler/BfModuleTypeUtils.cpp b/IDEHelper/Compiler/BfModuleTypeUtils.cpp index 5f9beb54..65575092 100644 --- a/IDEHelper/Compiler/BfModuleTypeUtils.cpp +++ b/IDEHelper/Compiler/BfModuleTypeUtils.cpp @@ -14556,8 +14556,15 @@ BfIRValue BfModule::CastToValue(BfAstNode* srcNode, BfTypedValue typedVal, BfTyp if ((convTypedVal.mType->IsWrappableType()) && (wantType == GetWrappedStructType(convTypedVal.mType))) { convTypedVal = MakeAddressable(convTypedVal); - methodMatcher.mArguments[0].mTypedValue = BfTypedValue(mBfIRBuilder->CreateBitCast(convTypedVal.mValue, mBfIRBuilder->MapTypeInstPtr(wantType->ToTypeInstance())), - paramType, paramType->IsRef() ? BfTypedValueKind_Value : BfTypedValueKind_Addr); + if (convTypedVal.mType->IsValuelessType()) + { + methodMatcher.mArguments[0].mTypedValue = GetDefaultTypedValue(paramType, false, paramType->IsRef() ? BfDefaultValueKind_Value : BfDefaultValueKind_Addr); + } + else + { + methodMatcher.mArguments[0].mTypedValue = BfTypedValue(mBfIRBuilder->CreateBitCast(convTypedVal.mValue, mBfIRBuilder->MapTypeInstPtr(wantType->ToTypeInstance())), + paramType, paramType->IsRef() ? BfTypedValueKind_Value : BfTypedValueKind_Addr); + } } else {