mirror of
https://github.com/beefytech/Beef.git
synced 2025-06-08 19:48:20 +02:00
Debug expr fixes
This commit is contained in:
parent
69d16f87f6
commit
4087bf8e2a
4 changed files with 27 additions and 6 deletions
|
@ -4705,6 +4705,13 @@ void DbgExprEvaluator::Visit(BfIndexerExpression* indexerExpr)
|
|||
}
|
||||
}
|
||||
|
||||
if ((collection.mType->IsBfObjectPtr()) || (collection.mType->IsStruct()))
|
||||
{
|
||||
// This should have been handled by some other cases
|
||||
mResult = DbgTypedValue();
|
||||
Fail(StrFormat("Unable to index type '%s'", TypeToString(collection.mType).c_str()), indexerExpr->mOpenBracket);
|
||||
}
|
||||
|
||||
auto memberType = collection.mType->mTypeParam;
|
||||
auto result = ReadTypedValue(memberType, target + indexArgument.GetInt64() * memberType->GetStride(), DbgAddrType_Target);
|
||||
if (mResult.mIsReadOnly)
|
||||
|
|
|
@ -1057,10 +1057,23 @@ bool DbgType::IsValueType()
|
|||
|
||||
bool DbgType::IsTypedPrimitive()
|
||||
{
|
||||
PopulateType();
|
||||
|
||||
if (mTypeCode != DbgType_Struct)
|
||||
return false;
|
||||
|
||||
return mTypeParam != NULL;
|
||||
if (mTypeParam != NULL)
|
||||
return true;
|
||||
|
||||
auto baseType = GetBaseType();
|
||||
if (baseType == NULL)
|
||||
return false;
|
||||
|
||||
if (!baseType->IsTypedPrimitive())
|
||||
return false;
|
||||
|
||||
mTypeParam = baseType->mTypeParam;
|
||||
return true;
|
||||
}
|
||||
|
||||
bool DbgType::IsBoolean()
|
||||
|
@ -2141,8 +2154,8 @@ DbgModule::DbgModule(DebugTarget* debugTarget) : mDefaultCompileUnit(this)
|
|||
|
||||
CREATE_PRIMITIVE(DbgType_RegGroup, "@RegGroup", "@RegGroup", "@RegGroup", void*);
|
||||
|
||||
CREATE_PRIMITIVE_C(DbgType_i8, "int16_t", int16_t);
|
||||
CREATE_PRIMITIVE_C(DbgType_i8, "int32_t", int32_t);
|
||||
CREATE_PRIMITIVE_C(DbgType_i16, "int16_t", int16_t);
|
||||
CREATE_PRIMITIVE_C(DbgType_i32, "int32_t", int32_t);
|
||||
CREATE_PRIMITIVE_C(DbgType_i64, "__int64", int64);
|
||||
CREATE_PRIMITIVE_C(DbgType_u64, "unsigned __int64", uint64);
|
||||
|
||||
|
|
|
@ -28,6 +28,7 @@ COptimizationLevel = "O2"
|
|||
ConfigSelections = {TestsB = {Config = "Test"}}
|
||||
|
||||
[Configs.Test.Win32]
|
||||
IntermediateType = "ObjectAndIRCode"
|
||||
ConfigSelections = {TestsB = {Config = "Test"}}
|
||||
|
||||
[Configs.TestFail.Win64]
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue