From eb7e78174cc6ff81140f72807df767fc567a0121 Mon Sep 17 00:00:00 2001 From: Brian Fiete Date: Thu, 6 Jan 2022 06:26:01 -0500 Subject: [PATCH] NumericCast error check --- IDEHelper/Backend/BeIRCodeGen.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/IDEHelper/Backend/BeIRCodeGen.cpp b/IDEHelper/Backend/BeIRCodeGen.cpp index 766f2f9b..84ec7d73 100644 --- a/IDEHelper/Backend/BeIRCodeGen.cpp +++ b/IDEHelper/Backend/BeIRCodeGen.cpp @@ -1331,7 +1331,13 @@ void BeIRCodeGen::HandleNextCmd() CMD_PARAM(bool, valIsSigned); BfTypeCode typeCode = (BfTypeCode)mStream->Read(); - BfTypeCode valTypeCode = GetTypeCode(val->GetType(), valIsSigned); + auto valType = val->GetType(); + if ((!valType->IsIntable()) && (!valType->IsFloat())) + { + Fail("Invalid NumericCast target"); + } + + BfTypeCode valTypeCode = GetTypeCode(valType, valIsSigned); if (auto srcCastConstant = BeValueDynCast(val)) {