1
0
Fork 0
mirror of https://github.com/beefytech/Beef.git synced 2025-06-10 20:42:21 +02:00

Hex long fix

This commit is contained in:
Brian Fiete 2020-05-26 08:22:26 -07:00
parent b6f5e67438
commit 534d20121c

View file

@ -2407,7 +2407,7 @@ void BfParser::NextToken(int endIdx)
val = -val;
if ((numberBase == 0x10) &&
((hexDigits == 16) || ((hadSeps) && (hexDigits > 8)) || ((hadLeadingHexSep) && (hexDigits == 8))))
((hexDigits >= 16) || ((hadSeps) && (hexDigits > 8)) || ((hadLeadingHexSep) && (hexDigits == 8))))
{
if (hexDigits > 16)
mPassInstance->FailAt("Too many hex digits for int64", mSourceData, mTokenStart, mSrcIdx - mTokenStart);
@ -2516,8 +2516,11 @@ void BfParser::NextToken(int endIdx)
if (val != 0)
signMatched = (val < 0) == wasNeg;
if (numberBase == 0x10)
{
if (hexDigits > 16)
mPassInstance->FailAt("Too many hex digits for int64", mSourceData, mTokenStart, mSrcIdx - mTokenStart);
}
else if ((hadOverflow) || (!signMatched))
mPassInstance->FailAt("Value doesn't fit into int64", mSourceData, mTokenStart, mSrcIdx - mTokenStart);
mSyntaxToken = BfSyntaxToken_Literal;