mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2024-11-22 07:30:19 +00:00
AK: Rename {DBGLN_NO => ENABLE}_COMPILETIME_FORMAT_CHECK
This is no longer limited to dbgln(). Also invert it to match all the other ENABLE_FOO options.
This commit is contained in:
parent
857cdee0d0
commit
6ad3454bfb
Notes:
sideshowbarker
2024-07-18 21:57:48 +09:00
Author: https://github.com/linusg Commit: https://github.com/SerenityOS/serenity/commit/6ad3454bfb8 Pull-request: https://github.com/SerenityOS/serenity/pull/5488 Reviewed-by: https://github.com/bgianfo
2 changed files with 15 additions and 14 deletions
|
@ -31,15 +31,15 @@
|
||||||
#include <AK/StdLibExtras.h>
|
#include <AK/StdLibExtras.h>
|
||||||
#include <AK/StringView.h>
|
#include <AK/StringView.h>
|
||||||
|
|
||||||
#ifndef DBGLN_NO_COMPILETIME_FORMAT_CHECK
|
#ifdef ENABLE_COMPILETIME_FORMAT_CHECK
|
||||||
// FIXME: Seems like clang doesn't like calling 'consteval' functions inside 'consteval' functions quite the same way as GCC does,
|
// FIXME: Seems like clang doesn't like calling 'consteval' functions inside 'consteval' functions quite the same way as GCC does,
|
||||||
// it seems to entirely forget that it accepted that parameters to a 'consteval' function to begin with.
|
// it seems to entirely forget that it accepted that parameters to a 'consteval' function to begin with.
|
||||||
# ifdef __clang__
|
# ifdef __clang__
|
||||||
# define DBGLN_NO_COMPILETIME_FORMAT_CHECK
|
# undef ENABLE_COMPILETIME_FORMAT_CHECK
|
||||||
# endif
|
# endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef DBGLN_NO_COMPILETIME_FORMAT_CHECK
|
#ifdef ENABLE_COMPILETIME_FORMAT_CHECK
|
||||||
namespace AK::Format::Detail {
|
namespace AK::Format::Detail {
|
||||||
|
|
||||||
// We have to define a local "purely constexpr" Array that doesn't lead back to us (via e.g. VERIFY)
|
// We have to define a local "purely constexpr" Array that doesn't lead back to us (via e.g. VERIFY)
|
||||||
|
@ -163,7 +163,7 @@ struct CheckedFormatString {
|
||||||
consteval CheckedFormatString(const char (&fmt)[N])
|
consteval CheckedFormatString(const char (&fmt)[N])
|
||||||
: m_string { fmt }
|
: m_string { fmt }
|
||||||
{
|
{
|
||||||
#ifndef DBGLN_NO_COMPILETIME_FORMAT_CHECK
|
#ifdef ENABLE_COMPILETIME_FORMAT_CHECK
|
||||||
check_format_parameter_consistency<N, sizeof...(Args)>(fmt);
|
check_format_parameter_consistency<N, sizeof...(Args)>(fmt);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
@ -177,7 +177,7 @@ struct CheckedFormatString {
|
||||||
auto view() const { return m_string; }
|
auto view() const { return m_string; }
|
||||||
|
|
||||||
private:
|
private:
|
||||||
#ifndef DBGLN_NO_COMPILETIME_FORMAT_CHECK
|
#ifdef ENABLE_COMPILETIME_FORMAT_CHECK
|
||||||
template<size_t N, size_t param_count>
|
template<size_t N, size_t param_count>
|
||||||
consteval static bool check_format_parameter_consistency(const char (&fmt)[N])
|
consteval static bool check_format_parameter_consistency(const char (&fmt)[N])
|
||||||
{
|
{
|
||||||
|
|
|
@ -17,13 +17,14 @@ set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
|
||||||
set(SERENITY_ARCH "i686" CACHE STRING "Target architecture for SerenityOS.")
|
set(SERENITY_ARCH "i686" CACHE STRING "Target architecture for SerenityOS.")
|
||||||
|
|
||||||
# Central location for all custom options used in the Serenity build.
|
# Central location for all custom options used in the Serenity build.
|
||||||
option(ENABLE_ADDRESS_SANITIZER "Enable address sanitizer testing in gcc/clang" FALSE)
|
option(ENABLE_ADDRESS_SANITIZER "Enable address sanitizer testing in gcc/clang" OFF)
|
||||||
option(ENABLE_KERNEL_ADDRESS_SANITIZER "Enable kernel address sanitizer testing in gcc/clang" FALSE)
|
option(ENABLE_KERNEL_ADDRESS_SANITIZER "Enable kernel address sanitizer testing in gcc/clang" OFF)
|
||||||
option(ENABLE_MEMORY_SANITIZER "Enable memory sanitizer testing in gcc/clang" FALSE)
|
option(ENABLE_MEMORY_SANITIZER "Enable memory sanitizer testing in gcc/clang" OFF)
|
||||||
option(ENABLE_UNDEFINED_SANITIZER "Enable undefined behavior sanitizer testing in gcc/clang" FALSE)
|
option(ENABLE_UNDEFINED_SANITIZER "Enable undefined behavior sanitizer testing in gcc/clang" OFF)
|
||||||
option(ENABLE_FUZZER_SANITIZER "Enable fuzzer sanitizer testing in clang" FALSE)
|
option(ENABLE_FUZZER_SANITIZER "Enable fuzzer sanitizer testing in clang" OFF)
|
||||||
option(ENABLE_ALL_THE_DEBUG_MACROS "Enable all debug macros to validate they still compile" FALSE)
|
option(ENABLE_ALL_THE_DEBUG_MACROS "Enable all debug macros to validate they still compile" OFF)
|
||||||
option(BUILD_LAGOM "Build parts of the system targeting the host OS for fuzzing/testing" FALSE)
|
option(ENABLE_COMPILETIME_FORMAT_CHECK "Disable compiletime format string checks" ON)
|
||||||
|
option(BUILD_LAGOM "Build parts of the system targeting the host OS for fuzzing/testing" OFF)
|
||||||
|
|
||||||
add_custom_target(run
|
add_custom_target(run
|
||||||
COMMAND ${CMAKE_SOURCE_DIR}/Meta/run.sh
|
COMMAND ${CMAKE_SOURCE_DIR}/Meta/run.sh
|
||||||
|
@ -164,8 +165,8 @@ add_compile_definitions(DEBUG SANITIZE_PTRS)
|
||||||
set(CMAKE_CXX_FLAGS_STATIC "${CMAKE_CXX_FLAGS} -static")
|
set(CMAKE_CXX_FLAGS_STATIC "${CMAKE_CXX_FLAGS} -static")
|
||||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pie -fpic")
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pie -fpic")
|
||||||
|
|
||||||
if (DBGLN_NO_COMPILETIME_FORMAT_CHECK)
|
if (ENABLE_COMPILETIME_FORMAT_CHECK)
|
||||||
add_compile_definitions(DBGLN_NO_COMPILETIME_FORMAT_CHECK)
|
add_compile_definitions(ENABLE_COMPILETIME_FORMAT_CHECK)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
add_link_options(--sysroot ${CMAKE_BINARY_DIR}/Root)
|
add_link_options(--sysroot ${CMAKE_BINARY_DIR}/Root)
|
||||||
|
|
Loading…
Reference in a new issue