From 91ea25e51ac122b2ab2363f89f5a6ee0b91c858c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Ho=C5=99e=C5=88ovsk=C3=BD?= Date: Tue, 3 May 2022 10:49:45 +0200 Subject: [PATCH] Fix use of u8-literal that would break in C++20 --- CMake/CatchMiscFunctions.cmake | 1 + tests/SelfTest/IntrospectiveTests/Xml.tests.cpp | 12 +++++------- 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/CMake/CatchMiscFunctions.cmake b/CMake/CatchMiscFunctions.cmake index 21f4f6c0..ce66542b 100644 --- a/CMake/CatchMiscFunctions.cmake +++ b/CMake/CatchMiscFunctions.cmake @@ -45,6 +45,7 @@ function(add_warnings_to_targets targets) set(CHECKED_WARNING_FLAGS "-Wabsolute-value" "-Wall" + "-Wc++20-compat" "-Wcall-to-pure-virtual-from-ctor-dtor" "-Wcast-align" "-Wcatch-value" diff --git a/tests/SelfTest/IntrospectiveTests/Xml.tests.cpp b/tests/SelfTest/IntrospectiveTests/Xml.tests.cpp index 226e737c..9fe9416a 100644 --- a/tests/SelfTest/IntrospectiveTests/Xml.tests.cpp +++ b/tests/SelfTest/IntrospectiveTests/Xml.tests.cpp @@ -52,10 +52,9 @@ TEST_CASE( "XmlEncode", "[XML]" ) { // Thanks to Peter Bindels (dascandy) for some of the tests TEST_CASE("XmlEncode: UTF-8", "[XML][UTF-8][approvals]") { -#define ESC(lit) reinterpret_cast(lit) SECTION("Valid utf-8 strings") { - CHECK(encode(ESC(u8"Here be 👾")) == ESC(u8"Here be 👾")); - CHECK(encode(ESC(u8"šš")) == ESC(u8"šš")); + CHECK(encode("Here be 👾") == "Here be 👾"); + CHECK(encode("šš") == "šš"); CHECK(encode("\xDF\xBF") == "\xDF\xBF"); // 0x7FF CHECK(encode("\xE0\xA0\x80") == "\xE0\xA0\x80"); // 0x800 @@ -67,10 +66,10 @@ TEST_CASE("XmlEncode: UTF-8", "[XML][UTF-8][approvals]") { } SECTION("Invalid utf-8 strings") { SECTION("Various broken strings") { - CHECK(encode(ESC("Here \xFF be \xF0\x9F\x91\xBE")) == ESC(u8"Here \\xFF be 👾")); + CHECK(encode("Here \xFF be \xF0\x9F\x91\xBE") == "Here \\xFF be 👾"); CHECK(encode("\xFF") == "\\xFF"); - CHECK(encode("\xC5\xC5\xA0") == ESC(u8"\\xC5Š")); - CHECK(encode("\xF4\x90\x80\x80") == ESC(u8"\\xF4\\x90\\x80\\x80")); // 0x110000 -- out of unicode range + CHECK(encode("\xC5\xC5\xA0") == "\\xC5Š"); + CHECK(encode("\xF4\x90\x80\x80") == "\\xF4\\x90\\x80\\x80"); // 0x110000 -- out of unicode range } SECTION("Overlong encodings") { @@ -121,7 +120,6 @@ TEST_CASE("XmlEncode: UTF-8", "[XML][UTF-8][approvals]") { CHECK(encode("\xF4\x80\x80") == "\\xF4\\x80\\x80"); } } -#undef ESC } TEST_CASE("XmlWriter writes boolean attributes as true/false", "[XML][XmlWriter]") {