[committed] libstdc++: Use unsigned char argument to std::isdigit

François Dumont frs.dumont@gmail.com
Wed May 5 19:57:55 GMT 2021


On 05/05/21 2:01 pm, Jonathan Wakely via Libstdc++ wrote:
> 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.
>
        unsigned char __c = *__first;
-      if (std::isdigit(__c))
+      if (std::isdigit(static_cast<unsigned char>(__c)))

I am very curious to know what this static_cast<unsigned char> does on 
__c which is already unsigned char ? If it does I'll just start to hate 
C++ :-)

Maybe you wanted to put it on the previous *__first ?



More information about the Libstdc++ mailing list