From 2d4e7cd1d476a065d824e11045c8dbc049d5f0a0 Mon Sep 17 00:00:00 2001 From: MacroFake Date: Thu, 14 Jul 2022 15:26:12 +0200 Subject: [PATCH] libstdc++: Make __from_chars_alnum_to_val conversion explicit The optimizations from commit a54137c88061c7495728fc6b8dfd0474e812b2cb introduced a clang integer sanitizer error. Fix this with an explicit static_cast, similar to the fix in commit 074436cf8cdd2a9ce75cadd36deb8301f00e55b9. libstdc++-v3/ChangeLog: * include/std/charconv (__from_chars_alnum_to_val): Replace implicit conversions from int to unsigned char with explicit casts. --- 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..bdf23e4a5ad 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(__c - '0'); else { // This initializer is deliberately made dependent in order to work -- 2.35.3