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.
This commit is contained in:
Jonathan Wakely 2020-06-23 12:20:26 +01:00
parent efc16503ca
commit b81d4f1e3d
2 changed files with 10 additions and 1 deletions

View File

@ -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" }

View File

@ -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" }