[committed] libstdc++: Use unsigned char argument to std::isdigit
Jonathan Wakely
jwakely@redhat.com
Wed May 5 12:01:02 GMT 2021
Passing plain char to isdigit is undefined if the value is negative.
libstdc++-v3/ChangeLog:
* include/std/charconv (__from_chars_alnum): Pass unsigned
char to std::isdigit.
Tested powerpc64le-linux. Committed to trunk.
-------------- next part --------------
commit d0d6ca019717305df0ef41e3fe1da48f7f561fac
Author: Jonathan Wakely <jwakely@redhat.com>
Date: Wed May 5 11:19:55 2021
libstdc++: Use unsigned char argument to std::isdigit
Passing plain char to isdigit is undefined if the value is negative.
libstdc++-v3/ChangeLog:
* include/std/charconv (__from_chars_alnum): Pass unsigned
char to std::isdigit.
diff --git a/libstdc++-v3/include/std/charconv b/libstdc++-v3/include/std/charconv
index 193702e677a..571be075a6b 100644
--- a/libstdc++-v3/include/std/charconv
+++ b/libstdc++-v3/include/std/charconv
@@ -565,7 +565,7 @@ namespace __detail
while (__first != __last)
{
unsigned char __c = *__first;
- if (std::isdigit(__c))
+ if (std::isdigit(static_cast<unsigned char>(__c)))
__c -= '0';
else
{
More information about the Libstdc++
mailing list