From b81d4f1e3d6a519afa20d84304f12ee639fde944 Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Tue, 23 Jun 2020 12:20:26 +0100 Subject: [PATCH] libstdc++: Adjust std::from_chars negative tests Also test with an enumeration type. Move the dg-error directives outside the #if block, because DejaGnu would process them whether or not wchar_t support is present. libstdc++-v3/ChangeLog: * testsuite/20_util/from_chars/1_c++20_neg.cc: Check enumeration type. * testsuite/20_util/from_chars/1_neg.cc: Likewise. Move dg-error directives outside preprocessor condition. --- libstdc++-v3/testsuite/20_util/from_chars/1_c++20_neg.cc | 3 +++ libstdc++-v3/testsuite/20_util/from_chars/1_neg.cc | 8 +++++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/libstdc++-v3/testsuite/20_util/from_chars/1_c++20_neg.cc b/libstdc++-v3/testsuite/20_util/from_chars/1_c++20_neg.cc index 8a73b2de72df..8454b304d138 100644 --- a/libstdc++-v3/testsuite/20_util/from_chars/1_c++20_neg.cc +++ b/libstdc++-v3/testsuite/20_util/from_chars/1_c++20_neg.cc @@ -35,6 +35,9 @@ test01(const char* first, const char* last) char32_t c32; std::from_chars(first, last, c32); // { dg-error "no matching" } std::from_chars(first, last, c32, 10); // { dg-error "no matching" } + enum E { } e; + std::from_chars(first, last, e); // { dg-error "no matching" } + std::from_chars(first, last, e, 10); // { dg-error "no matching" } } // { dg-prune-output "enable_if" } 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 3f46b7e7b959..12b5e597b9f5 100644 --- a/libstdc++-v3/testsuite/20_util/from_chars/1_neg.cc +++ b/libstdc++-v3/testsuite/20_util/from_chars/1_neg.cc @@ -25,9 +25,11 @@ 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" } -#endif char16_t c16; std::from_chars(first, last, c16); // { dg-error "no matching" } @@ -35,6 +37,10 @@ test01(const char* first, const char* last) char32_t c32; std::from_chars(first, last, c32); // { dg-error "no matching" } std::from_chars(first, last, c32, 10); // { dg-error "no matching" } + + enum E { } e; + std::from_chars(first, last, e); // { dg-error "no matching" } + std::from_chars(first, last, e, 10); // { dg-error "no matching" } } // { dg-prune-output "enable_if" } -- 2.39.2