From 2bac59bab41fc8f4950b5cb630781cfa5d3a71b8 Mon Sep 17 00:00:00 2001 From: Sam McCall Date: Mon, 9 Jan 2023 20:36:05 +0100 Subject: [PATCH] [Support] avoid u8"" literals in tests, their type changes in C++20 Just specify the encoded bytes instead, which causes less confusion anyway. Differential Revision: https://reviews.llvm.org/D141312 --- llvm/unittests/Support/JSONTest.cpp | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/llvm/unittests/Support/JSONTest.cpp b/llvm/unittests/Support/JSONTest.cpp index ff425a0..392a953 100644 --- a/llvm/unittests/Support/JSONTest.cpp +++ b/llvm/unittests/Support/JSONTest.cpp @@ -174,12 +174,16 @@ TEST(JSONTest, Parse) { Compare(R"("\"\\\b\f\n\r\t")", "\"\\\b\f\n\r\t"); Compare(R"("\u0000")", llvm::StringRef("\0", 1)); Compare("\"\x7f\"", "\x7f"); - Compare(R"("\ud801\udc37")", u8"\U00010437"); // UTF16 surrogate pair escape. - Compare("\"\xE2\x82\xAC\xF0\x9D\x84\x9E\"", u8"\u20ac\U0001d11e"); // UTF8 + Compare(R"("\ud801\udc37")", // UTF-16 surrogate pair escape. + /*U+10437*/ "\xf0\x90\x90\xb7"); + Compare("\"\xE2\x82\xAC\xF0\x9D\x84\x9E\"", // UTF-8 + /*U+20AC U+1D11E*/ "\xe2\x82\xac\xf0\x9d\x84\x9e"); Compare( - R"("LoneLeading=\ud801, LoneTrailing=\udc01, LeadingLeadingTrailing=\ud801\ud801\udc37")", - u8"LoneLeading=\ufffd, LoneTrailing=\ufffd, " - u8"LeadingLeadingTrailing=\ufffd\U00010437"); // Invalid unicode. + // Invalid unicode. + R"("LoneLeading=\ud801, LoneTrailing=\udc01, LeadLeadTrail=\ud801\ud801\udc37")", + "LoneLeading=" /*U+FFFD*/ "\xef\xbf\xbd, " + "LoneTrailing=" /*U+FFFD*/ "\xef\xbf\xbd, " + "LeadLeadTrail=" /*U+FFFD U+10437*/ "\xef\xbf\xbd\xf0\x90\x90\xb7"); Compare(R"({"":0,"":0})", Object{{"", 0}}); Compare(R"({"obj":{},"arr":[]})", Object{{"obj", Object{}}, {"arr", {}}}); -- 2.7.4