From 2578102be972cf5b7f336dae59a9440347788946 Mon Sep 17 00:00:00 2001 From: "Markus F.X.J. Oberhumer" Date: Wed, 9 Nov 2022 22:15:11 +0100 Subject: [PATCH] src: misc cleanups --- src/conf.h | 3 +++ src/util/dt_check.cpp | 6 +++++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/src/conf.h b/src/conf.h index e64ba5d1..a2bcc934 100644 --- a/src/conf.h +++ b/src/conf.h @@ -377,6 +377,9 @@ private: namespace compile_time { +constexpr size_t string_len(const char *a) { + return *a == '\0' ? 0 : 1 + string_len(a + 1); +} constexpr bool string_eq(const char *a, const char *b) { return *a == *b && (*a == '\0' || string_eq(a + 1, b + 1)); } diff --git a/src/util/dt_check.cpp b/src/util/dt_check.cpp index 60b46257..2930b58f 100644 --- a/src/util/dt_check.cpp +++ b/src/util/dt_check.cpp @@ -35,6 +35,7 @@ int upx_doctest_check(int argc, char **argv) { #if defined(DOCTEST_CONFIG_DISABLE) UNUSED(argc); UNUSED(argv); + return 0; #else const char *e = getenv("UPX_DEBUG_DOCTEST_DISABLE"); if (e && e[0] && strcmp(e, "0") != 0) @@ -72,8 +73,8 @@ int upx_doctest_check(int argc, char **argv) { return 1; if (context.shouldExit()) return 2; -#endif // DOCTEST_CONFIG_DISABLE return 0; +#endif // DOCTEST_CONFIG_DISABLE } int upx_doctest_check() { return upx_doctest_check(0, nullptr); } @@ -98,6 +99,9 @@ ACC_COMPILE_TIME_ASSERT_HEADER(bswap32(0x04030201) == 0x01020304) ACC_COMPILE_TIME_ASSERT_HEADER(bswap64(0x0807060504030201ull) == 0x0102030405060708ull) #endif +ACC_COMPILE_TIME_ASSERT_HEADER(compile_time::string_len("") == 0) +ACC_COMPILE_TIME_ASSERT_HEADER(compile_time::string_len("a") == 1) + ACC_COMPILE_TIME_ASSERT_HEADER(compile_time::string_eq("", "")) ACC_COMPILE_TIME_ASSERT_HEADER(!compile_time::string_eq("a", "")) ACC_COMPILE_TIME_ASSERT_HEADER(!compile_time::string_eq("", "a"))