libstdc++: add casts to from_chars in <charconv> [PR111883]
commit1d9263f292c3efc4e37c3a88117388e86d19b954
authorMarek Polacek <polacek@redhat.com>
Thu, 19 Oct 2023 21:48:44 +0000 (19 17:48 -0400)
committerMarek Polacek <polacek@redhat.com>
Fri, 20 Oct 2023 16:35:58 +0000 (20 12:35 -0400)
treee9ea5f5502b048f6e1fb40ca7b3ededbf29fb999
parent24cf1f600b8ad34c68a51f48884e72d01f729893
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.
libstdc++-v3/include/std/charconv