[libcxx-commits] [libcxx] a9a71b6 - [libc++][test] Don't pass ill-formed UTF-8 to MAKE_STRING_VIEW (#136403)
via libcxx-commits
libcxx-commits at lists.llvm.org
Thu Jun 19 00:21:31 PDT 2025
Author: S. B. Tam
Date: 2025-06-19T15:21:28+08:00
New Revision: a9a71b6d311892d6add6aab3790b20fe945cca38
URL: https://github.com/llvm/llvm-project/commit/a9a71b6d311892d6add6aab3790b20fe945cca38
DIFF: https://github.com/llvm/llvm-project/commit/a9a71b6d311892d6add6aab3790b20fe945cca38.diff
LOG: [libc++][test] Don't pass ill-formed UTF-8 to MAKE_STRING_VIEW (#136403)
Added:
Modified:
libcxx/test/std/utilities/format/format.functions/escaped_output.unicode.pass.cpp
libcxx/test/std/utilities/format/format.functions/fill.unicode.pass.cpp
Removed:
################################################################################
diff --git a/libcxx/test/std/utilities/format/format.functions/escaped_output.unicode.pass.cpp b/libcxx/test/std/utilities/format/format.functions/escaped_output.unicode.pass.cpp
index c4adf601c40af..eb27c70954664 100644
--- a/libcxx/test/std/utilities/format/format.functions/escaped_output.unicode.pass.cpp
+++ b/libcxx/test/std/utilities/format/format.functions/escaped_output.unicode.pass.cpp
@@ -337,7 +337,7 @@ void test_string() {
// Ill-formed
if constexpr (sizeof(CharT) == 1)
- test_format(SV(R"("\x{80}")"), SV("{:?}"), SV("\x80"));
+ test_format(SV(R"("\x{80}")"), SV("{:?}"), "\x80");
// *** P2713R1 examples ***
test_format(SV(R"(["\u{301}"])"), SV("[{:?}]"), SV("\u0301"));
diff --git a/libcxx/test/std/utilities/format/format.functions/fill.unicode.pass.cpp b/libcxx/test/std/utilities/format/format.functions/fill.unicode.pass.cpp
index cd555e1ab9ce8..76f756ae91483 100644
--- a/libcxx/test/std/utilities/format/format.functions/fill.unicode.pass.cpp
+++ b/libcxx/test/std/utilities/format/format.functions/fill.unicode.pass.cpp
@@ -75,30 +75,40 @@ void test() {
// Invalid Unicode Scalar Values
if constexpr (std::same_as<CharT, char>) {
- check_exception("The format specifier contains malformed Unicode characters", SV("{:\xed\xa0\x80^}"), 42); // U+D800
- check_exception("The format specifier contains malformed Unicode characters", SV("{:\xed\xa0\xbf^}"), 42); // U+DBFF
- check_exception("The format specifier contains malformed Unicode characters", SV("{:\xed\xbf\x80^}"), 42); // U+DC00
- check_exception("The format specifier contains malformed Unicode characters", SV("{:\xed\xbf\xbf^}"), 42); // U+DFFF
+ check_exception("The format specifier contains malformed Unicode characters",
+ std::string_view{"{:\xed\xa0\x80^}"},
+ 42); // U+D800
+ check_exception("The format specifier contains malformed Unicode characters",
+ std::string_view{"{:\xed\xa0\xbf^}"},
+ 42); // U+DBFF
+ check_exception("The format specifier contains malformed Unicode characters",
+ std::string_view{"{:\xed\xbf\x80^}"},
+ 42); // U+DC00
+ check_exception("The format specifier contains malformed Unicode characters",
+ std::string_view{"{:\xed\xbf\xbf^}"},
+ 42); // U+DFFF
- check_exception(
- "The format specifier contains malformed Unicode characters", SV("{:\xf4\x90\x80\x80^}"), 42); // U+110000
- check_exception(
- "The format specifier contains malformed Unicode characters", SV("{:\xf4\x90\xbf\xbf^}"), 42); // U+11FFFF
+ check_exception("The format specifier contains malformed Unicode characters",
+ std::string_view{"{:\xf4\x90\x80\x80^}"},
+ 42); // U+110000
+ check_exception("The format specifier contains malformed Unicode characters",
+ std::string_view{"{:\xf4\x90\xbf\xbf^}"},
+ 42); // U+11FFFF
check_exception("The format specifier contains malformed Unicode characters",
- SV("{:\x80^}"),
+ std::string_view{"{:\x80^}"},
42); // Trailing code unit with no leading one.
check_exception("The format specifier contains malformed Unicode characters",
- SV("{:\xc0^}"),
+ std::string_view{"{:\xc0^}"},
42); // Missing trailing code unit.
check_exception("The format specifier contains malformed Unicode characters",
- SV("{:\xe0\x80^}"),
+ std::string_view{"{:\xe0\x80^}"},
42); // Missing trailing code unit.
check_exception("The format specifier contains malformed Unicode characters",
- SV("{:\xf0\x80^}"),
+ std::string_view{"{:\xf0\x80^}"},
42); // Missing two trailing code units.
check_exception("The format specifier contains malformed Unicode characters",
- SV("{:\xf0\x80\x80^}"),
+ std::string_view{"{:\xf0\x80\x80^}"},
42); // Missing trailing code unit.
#ifndef TEST_HAS_NO_WIDE_CHARACTERS
More information about the libcxx-commits
mailing list