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

Fixed int8[0] aggzero marker

This commit is contained in:
Brian Fiete 2021-02-24 13:52:04 -08:00
parent 25dce88509
commit 524d3993ab
2 changed files with 9 additions and 10 deletions

View file

@ -865,18 +865,18 @@ void BeIRCodeGen::Read(BeValue*& beValue)
}
else if (valType != structType->mMembers[i].mType)
{
if ((valType->IsSizedArray()) && (structType->mMembers[i].mType->IsSizedArray()))
if (valType->IsSizedArray())
{
auto valSizedType = (BeSizedArrayType*)valType;
auto memberSizedType = (BeSizedArrayType*)structType->mMembers[i].mType;
if ((valSizedType->mSize == 0) && (valSizedType->mElementType == memberSizedType->mElementType))
if (valSizedType->mSize == 0)
{
constant->mType = memberSizedType;
constant->mType = structType->mMembers[i].mType;
constStruct->mMemberValues.Add(constant);
continue;
}
}
Fail("ConstAgg struct member type mismatch");
}
}

View file

@ -955,12 +955,11 @@ void BfIRCodeGen::Read(llvm::Value*& llvmValue, BfIRCodeGenEntry** codeGenEntry,
if (values[i]->getType() != structType->getElementType(i))
{
auto valArrayType = llvm::dyn_cast<llvm::ArrayType>(values[i]->getType());
auto structArrayType = llvm::dyn_cast<llvm::ArrayType>(structType->getElementType(i));
if ((valArrayType != NULL) && (structArrayType != NULL))
if (valArrayType != NULL)
{
if ((valArrayType->getNumElements() == 0) && (valArrayType->getElementType() == structArrayType->getElementType()))
if (valArrayType->getNumElements() == 0)
{
values[i] = llvm::ConstantAggregateZero::get(structArrayType);
values[i] = llvm::ConstantAggregateZero::get(structType->getElementType(i));
}
}
}