Avoid a space in the UDL definition (#3610)
* Avoid a space in the UDL definition except on GCC before 4.9 Clang 18 has grown a warning about the space being deprecated which is enabled by default in their nightly binaries. However GCC before 4.9 will reject the UDL definition unless there is a space there, so we need to keep the space conditionally for it. * Remove UDLs on GCC before 4.9 to simplify things GCC before 4.9 rejects the syntax that is now rejected on more modern compilers. * Disable compile-error-test on GCC < 4.9 This avoids the UDL tests failing as GCC < 4.9 can not parse UDLs without a space, but the space is malformed in modern compilers.
This commit is contained in:
@@ -175,7 +175,12 @@ if (FMT_PEDANTIC)
|
||||
endif ()
|
||||
|
||||
# These tests are disabled on Windows because they take too long.
|
||||
if (FMT_PEDANTIC AND NOT WIN32)
|
||||
# They are disabled on GCC < 4.9 because it can not parse UDLs without
|
||||
# a space after `operator""` but that is an incorrect syntax for any more
|
||||
# modern compiler.
|
||||
if (FMT_PEDANTIC AND NOT WIN32 AND NOT (
|
||||
CMAKE_CXX_COMPILER_ID MATCHES "GNU" AND
|
||||
CMAKE_CXX_COMPILER_VERSION VERSION_LESS 4.9))
|
||||
# Test if incorrect API usages produce compilation error.
|
||||
add_test(compile-error-test ${CMAKE_CTEST_COMMAND}
|
||||
--build-and-test
|
||||
|
||||
Reference in New Issue
Block a user