Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix compiler warnings from utf8.c on 32-bit build #22899

Merged
merged 3 commits into from
Jan 12, 2025
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 8 additions & 6 deletions utf8.c
Original file line number Diff line number Diff line change
Expand Up @@ -1634,12 +1634,11 @@ Perl_utf8_to_uv_msgs_helper_(const U8 * const s0,
* than a single character */
const U8 * send = e;

SSize_t curlen = send - s0;
U32 possible_problems; /* A bit is set here for each potential problem
found as we go along */
UV uv = 0;
SSize_t expectlen; /* How long should this sequence be? */
SSize_t avail_len; /* When input is too short, gives what that is */
Size_t expectlen; /* How long should this sequence be? */
Size_t avail_len; /* When input is too short, gives what that is */

dTHX;

Expand Down Expand Up @@ -1723,11 +1722,13 @@ Perl_utf8_to_uv_msgs_helper_(const U8 * const s0,
* allowed one, we could allow in something that shouldn't have been.
*/

if (UNLIKELY(curlen <= 0)) {
Size_t curlen;
if (UNLIKELY(s0 >= send)) {
possible_problems |= UTF8_GOT_EMPTY;
curlen = 0;
goto ready_to_handle_errors;
}
curlen = send - s0;

/* We now know we can examine the first byte of the input */
expectlen = UTF8SKIP(s0);
Expand Down Expand Up @@ -1892,7 +1893,7 @@ Perl_utf8_to_uv_msgs_helper_(const U8 * const s0,
* full length with occurrences of the smallest continuation
* byte. For surrogates we could just look at the bytes, but
* this single algorithm works for both those and supers. */
for (unsigned i = curlen; i < expectlen; i++) {
for (Size_t i = curlen; i < expectlen; i++) {
uv = UTF8_ACCUMULATE(uv, UTF8_MIN_CONTINUATION_BYTE);
}
}
Expand Down Expand Up @@ -2096,7 +2097,8 @@ Perl_utf8_to_uv_msgs_helper_(const U8 * const s0,
switch (this_problem) {
default:
Perl_croak(aTHX_ "panic: Unexpected case value in "
" utf8n_to_uvchr_msgs() %d", this_problem);
" utf8n_to_uvchr_msgs() %" U32uf,
this_problem);
/* NOTREACHED */
break;

Expand Down
Loading