1
0
Fork 0
mirror of https://github.com/beefytech/Beef.git synced 2025-06-08 19:48:20 +02:00

Properly handle splattable cast to base where base is CRepr

This commit is contained in:
Brian Fiete 2023-06-29 11:43:43 -04:00
parent e46f525e90
commit c18c76b4fe

View file

@ -14839,10 +14839,7 @@ BfTypedValue BfModule::Cast(BfAstNode* srcNode, const BfTypedValue& typedVal, Bf
if (typedVal.IsSplat())
{
if ((!toStructTypeInstance->IsSplattable()) && (toStructTypeInstance->mInstSize != 0))
{
InternalError("typedVal.IsSplat(), but !toStructTypeInstance->IsSplattable() && toStructTypeInstance->mInstSize != 0", srcNode);
return GetDefaultTypedValue(toType, true, BfDefaultValueKind_Addr);
}
return Cast(srcNode, MakeAddressable(typedVal), toType, castFlags);
BF_ASSERT(toStructTypeInstance->IsSplattable() || (toStructTypeInstance->mInstSize == 0));
return BfTypedValue(typedVal.mValue, toStructTypeInstance, typedVal.IsThis() ? BfTypedValueKind_ThisSplatHead : BfTypedValueKind_SplatHead);