On 28/12/20 19:39 +0100, François Dumont via Libstdc++ wrote:
On 22/12/20 10:27 pm, Alexandre Oliva wrote:
This change extracts apart the wchar specific parts of character
conversion tests to allow conditonalizating these parts on actual
wchar support while applying the rest more generally.
This turned out useful during our work on the libstdc++ support
for VxWorks, to expose the problematic areas more precisely.
Regstrapped on x86_64-linux-gnu, and tested with -x-arm-wrs-vxworks7r2.
Ok to install? (dg-requires-wchars is added by another patch by
Corentin, that I posted a few minutes ago)
While updating Corentin's patch for mainline, I brought over to the
split-out test even the preprocessor conditional that is present in the
current version of the test, but required/implied by dg-requires-wchars.
Maybe that's excessive. Maybe the whole patch is excessive, given that
conditional, but I didn't want to just drop it without asking for
others' thoughts.
from Corentin Gay <g...@adacore.com>
for libstdc++-v3/ChangeLog
* testsuite/20_util/from_chars/1_neg.cc: Split wchar specific
part into...
* testsuite/20_util/from_chars/1_neg_wchar.cc: ... new file.
---
libstdc++-v3/testsuite/20_util/from_chars/1_neg.cc | 8 -----
.../testsuite/20_util/from_chars/1_neg_wchar.cc | 35 ++++++++++++++++++++
2 files changed, 35 insertions(+), 8 deletions(-)
create mode 100644 libstdc++-v3/testsuite/20_util/from_chars/1_neg_wchar.cc
diff --git a/libstdc++-v3/testsuite/20_util/from_chars/1_neg.cc
b/libstdc++-v3/testsuite/20_util/from_chars/1_neg.cc
index 0d2fe2b3e6594..a84b0f5efb075 100644
--- a/libstdc++-v3/testsuite/20_util/from_chars/1_neg.cc
+++ b/libstdc++-v3/testsuite/20_util/from_chars/1_neg.cc
@@ -23,14 +23,6 @@
void
test01(const char* first, const char* last)
{
-#if _GLIBCXX_USE_WCHAR_T
- wchar_t wc;
-#else
- enum W { } wc;
-#endif
- std::from_chars(first, last, wc); // { dg-error "no matching" }
- std::from_chars(first, last, wc, 10); // { dg-error "no matching" }
-
char16_t c16;
std::from_chars(first, last, c16); // { dg-error "no matching" }
std::from_chars(first, last, c16, 10); // { dg-error "no matching" }
diff --git a/libstdc++-v3/testsuite/20_util/from_chars/1_neg_wchar.cc
b/libstdc++-v3/testsuite/20_util/from_chars/1_neg_wchar.cc
new file mode 100644
index 0000000000000..2d736a28a2da7
--- /dev/null
+++ b/libstdc++-v3/testsuite/20_util/from_chars/1_neg_wchar.cc
AFAIK _neg should be last.
Yup.
Using wchar_t_neg.cc should even make the dg-require-wchars useless here.
Indeed, but I don't think we want this change anyway.