[Support] avoid u8"" literals in tests, their type changes in C++20
authorSam McCall <sam.mccall@gmail.com>
Mon, 9 Jan 2023 19:36:05 +0000 (20:36 +0100)
committerSam McCall <sam.mccall@gmail.com>
Tue, 10 Jan 2023 13:00:22 +0000 (14:00 +0100)
Just specify the encoded bytes instead, which causes less confusion anyway.

Differential Revision: https://reviews.llvm.org/D141312

llvm/unittests/Support/JSONTest.cpp

index ff425a0..392a953 100644 (file)
@@ -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", {}}});