Limit maximum exponent in parsing of float/integer literals

This commit is contained in:
Jeroen van Rijn
2026-03-07 12:38:04 +01:00
parent a6cfde4373
commit 6434bf4b65
3 changed files with 27 additions and 4 deletions

View File

@@ -804,7 +804,12 @@ gb_internal ExactValue exact_value_from_token(AstFile *f, Token const &token) {
syntax_error(token, "Invalid integer literal");
break;
case Token_Float:
syntax_error(token, "Invalid float literal");
// NOTE(Jeroen): Could be an integer, see `exact_value_float_from_string`
if (!string_contains_char(s, '.') && !string_contains_char(s, '-')) {
syntax_error(token, "Invalid integer literal");
} else {
syntax_error(token, "Invalid float literal");
}
break;
default:
syntax_error(token, "Invalid token literal");