summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKevin Newton <kddnewton@gmail.com>2024-08-29 14:39:18 -0400
committerKevin Newton <kddnewton@gmail.com>2024-08-29 15:24:55 -0400
commit9f4954559b03ec910514fdff2f70d113721b30bf (patch)
treeaf95b80add03167f340e3ef7123855c5fa4f097f
parent1f114464fc3424b8c5bb1ff41fde84dc1269f184 (diff)
[PRISM] Handle nth reference ERANGE with warning
Notes
Notes: Merged: https://github.com/ruby/ruby/pull/11502
-rw-r--r--prism/prism.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/prism/prism.c b/prism/prism.c
index 4edb57adc0..43ce5df371 100644
--- a/prism/prism.c
+++ b/prism/prism.c
@@ -6151,14 +6151,14 @@ pm_numbered_reference_read_node_number(pm_parser_t *parser, const pm_token_t *to
errno = 0;
unsigned long value = strtoul(digits, &endptr, 10);
- if ((digits == endptr) || (*endptr != '\0') || (errno == ERANGE)) {
+ if ((digits == endptr) || (*endptr != '\0')) {
pm_parser_err(parser, start, end, PM_ERR_INVALID_NUMBER_DECIMAL);
value = 0;
}
xfree(digits);
- if (value > NTH_REF_MAX) {
+ if ((errno == ERANGE) || (value > NTH_REF_MAX)) {
PM_PARSER_WARN_FORMAT(parser, start, end, PM_WARN_INVALID_NUMBERED_REFERENCE, (int) (length + 1), (const char *) token->start);
value = 0;
}