mirror of
git://gcc.gnu.org/git/gcc.git
synced 2024-12-12 09:10:21 +08:00
libstdc++: add casts to from_chars in <charconv> [PR111883]
This fixes .../charconv: In function 'std::from_chars_result std::from_chars(const char*, const char*, _Float16&, chars_format)': .../charconv:687:17: warning: converting to '_Float16' from 'float' with greater conversion rank 687 | __value = __val; | ^~~~~ .../charconv: In function 'std::from_chars_result std::from_chars(const char*, const char*, __gnu_cxx::__bfloat16_t&, chars_format)': .../charconv:763:17: warning: converting to '__gnu_cxx::__bfloat16_t' {aka '__bf16'} from 'float' with greater conversion rank 763 | __value = __val; | ^~~~~ which was breaking a test: FAIL: g++.dg/warn/Wstringop-overflow-6.C -std=gnu++26 (test for excess errors) PR testsuite/111883 libstdc++-v3/ChangeLog: * include/std/charconv (from_chars): Add explicit casts.
This commit is contained in:
parent
24cf1f600b
commit
1d9263f292
@ -684,7 +684,7 @@ namespace __detail
|
||||
from_chars_result __res
|
||||
= __from_chars_float16_t(__first, __last, __val, __fmt);
|
||||
if (__res.ec == errc{})
|
||||
__value = __val;
|
||||
__value = _Float16(__val);
|
||||
return __res;
|
||||
}
|
||||
#endif
|
||||
@ -697,7 +697,7 @@ namespace __detail
|
||||
float __val;
|
||||
from_chars_result __res = from_chars(__first, __last, __val, __fmt);
|
||||
if (__res.ec == errc{})
|
||||
__value = __val;
|
||||
__value = _Float32(__val);
|
||||
return __res;
|
||||
}
|
||||
#endif
|
||||
@ -710,7 +710,7 @@ namespace __detail
|
||||
double __val;
|
||||
from_chars_result __res = from_chars(__first, __last, __val, __fmt);
|
||||
if (__res.ec == errc{})
|
||||
__value = __val;
|
||||
__value = _Float64(__val);
|
||||
return __res;
|
||||
}
|
||||
#endif
|
||||
@ -723,7 +723,7 @@ namespace __detail
|
||||
long double __val;
|
||||
from_chars_result __res = from_chars(__first, __last, __val, __fmt);
|
||||
if (__res.ec == errc{})
|
||||
__value = __val;
|
||||
__value = _Float128(__val);
|
||||
return __res;
|
||||
}
|
||||
#elif defined(__STDCPP_FLOAT128_T__) && defined(_GLIBCXX_HAVE_FLOAT128_MATH)
|
||||
@ -739,7 +739,7 @@ namespace __detail
|
||||
__extension__ __ieee128 __val;
|
||||
from_chars_result __res = from_chars(__first, __last, __val, __fmt);
|
||||
if (__res.ec == errc{})
|
||||
__value = __val;
|
||||
__value = _Float128(__val);
|
||||
return __res;
|
||||
}
|
||||
#else
|
||||
@ -760,7 +760,7 @@ namespace __detail
|
||||
from_chars_result __res
|
||||
= __from_chars_bfloat16_t(__first, __last, __val, __fmt);
|
||||
if (__res.ec == errc{})
|
||||
__value = __val;
|
||||
__value = __gnu_cxx::__bfloat16_t(__val);
|
||||
return __res;
|
||||
}
|
||||
#endif
|
||||
|
Loading…
Reference in New Issue
Block a user