summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarco Falke <falke.marco@gmail.com>2022-07-19 10:10:39 +0100
committerJonathan Wakely <jwakely@redhat.com>2022-07-21 09:57:25 +0100
commit0bb30f94ace6be68bd315d03f36b24bbaec2bee7 (patch)
treef992f6a8355551acd07deac90d8938417b6da352
parentf3ff78e3db0fc18127dac4fe3eaf113d0c5ddd01 (diff)
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)
-rw-r--r--libstdc++-v3/include/std/charconv2
1 files changed, 1 insertions, 1 deletions
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