[gcc r14-8224] libstdc++: Fix std::format test for Solaris [PR113450]
Jonathan Wakely
redi@gcc.gnu.org
Thu Jan 18 12:54:25 GMT 2024
https://gcc.gnu.org/g:db42a0a98916340af33338c08e6a7d328121b958
commit r14-8224-gdb42a0a98916340af33338c08e6a7d328121b958
Author: Jonathan Wakely <jwakely@redhat.com>
Date: Wed Jan 17 21:40:25 2024 +0000
libstdc++: Fix std::format test for Solaris [PR113450]
When int8_t is a typedef for char (rather than signed char) this test
fails because it tries to format a char, which is treated differently
from formatting other integral types (including signed char).
Use signed char explicitly so the result doesn't depend on the
non-portable definition of int8_t.
libstdc++-v3/ChangeLog:
PR libstdc++/113450
* testsuite/std/format/functions/format.cc: Use signed char
instead of int8_t.
Diff:
---
libstdc++-v3/testsuite/std/format/functions/format.cc | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/libstdc++-v3/testsuite/std/format/functions/format.cc b/libstdc++-v3/testsuite/std/format/functions/format.cc
index 63702edbd42..30c5fc22237 100644
--- a/libstdc++-v3/testsuite/std/format/functions/format.cc
+++ b/libstdc++-v3/testsuite/std/format/functions/format.cc
@@ -365,7 +365,7 @@ test_minmax()
s = std::format("{:b}" , std::numeric_limits<U>::max());
VERIFY( s == '1' + ones );
};
- check(std::int8_t(0));
+ check((signed char)(0)); // int8_t is char on Solaris, see PR 113450
check(std::int16_t(0));
check(std::int32_t(0));
check(std::int64_t(0));
More information about the Libstdc++-cvs
mailing list