[gcc r12-8591] libstdc++: Make __from_chars_alnum_to_val conversion explicit
Jonathan Wakely
redi@gcc.gnu.org
Thu Jul 21 11:16:33 GMT 2022
https://gcc.gnu.org/g:0bb30f94ace6be68bd315d03f36b24bbaec2bee7
commit r12-8591-g0bb30f94ace6be68bd315d03f36b24bbaec2bee7
Author: Marco Falke <falke.marco@gmail.com>
Date: Tue Jul 19 10:10:39 2022 +0100
libstdc++: Make __from_chars_alnum_to_val conversion explicit
The optimizations from commit r12-8175-ga54137c88061c7 introduced a
clang integer sanitizer error.
Fix this with an explicit static_cast, similar to the fix for PR 96766.
libstdc++-v3/ChangeLog:
* include/std/charconv (__from_chars_alnum_to_val): Replace
implicit conversion from int to unsigned char with explicit
cast.
(cherry picked from commit 20ab3972240aff596a3fa98e9fb09ddc0658fbb3)
Diff:
---
libstdc++-v3/include/std/charconv | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/libstdc++-v3/include/std/charconv b/libstdc++-v3/include/std/charconv
index 218813e4797..533320ea085 100644
--- a/libstdc++-v3/include/std/charconv
+++ b/libstdc++-v3/include/std/charconv
@@ -436,7 +436,7 @@ namespace __detail
__from_chars_alnum_to_val(unsigned char __c)
{
if _GLIBCXX17_CONSTEXPR (_DecOnly)
- return __c - '0';
+ return static_cast<unsigned char>(__c - '0');
else
{
// This initializer is deliberately made dependent in order to work
More information about the Libstdc++-cvs
mailing list