From 2cffd048334912f72e0f55b2a02bd1fd9107613a Mon Sep 17 00:00:00 2001 From: bfredl Date: Mon, 27 Feb 2023 20:14:10 +0100 Subject: [PATCH] refactor(build): graduate -Wvla, -fno-common and -Og "features" These are in gcc 4.9+ which we require anyway. -Og is safe on clang as well (reserved for a future debug-optimize mode, and currently does the same as -O1 which is reasonable) --- CMakeLists.txt | 14 ++++---------- src/nvim/CMakeLists.txt | 15 ++------------- 2 files changed, 6 insertions(+), 23 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 1334dececd..0c445b27b4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -120,17 +120,11 @@ if(CMAKE_C_FLAGS_RELEASE MATCHES "-O3") string(REPLACE "-O3" "-O2" CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE}") endif() -if(CMAKE_C_COMPILER_ID MATCHES "GNU") - check_c_compiler_flag(-Og HAS_OG_FLAG) -else() - set(HAS_OG_FLAG 0) -endif() - -# # Build-type: RelWithDebInfo -# -if(HAS_OG_FLAG) - set(CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS_RELWITHDEBINFO} -Og -g") + +# /Og means something different in MSVC +if(CMAKE_C_COMPILER_ID MATCHES "GNU" OR CMAKE_C_COMPILER_ID MATCHES "Clang") + set(CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS_RELWITHDEBINFO} -Og -g") endif() # We _want_ assertions in RelWithDebInfo build-type. if(CMAKE_C_FLAGS_RELWITHDEBINFO MATCHES DNDEBUG) diff --git a/src/nvim/CMakeLists.txt b/src/nvim/CMakeLists.txt index 504dde5a9c..10f44c428c 100755 --- a/src/nvim/CMakeLists.txt +++ b/src/nvim/CMakeLists.txt @@ -87,14 +87,14 @@ if(MSVC) target_sources(main_lib INTERFACE ${CMAKE_CURRENT_LIST_DIR}/os/nvim.manifest) else() target_compile_options(main_lib INTERFACE -Wall -Wextra -pedantic -Wno-unused-parameter - -Wstrict-prototypes -std=gnu99 -Wshadow -Wconversion + -Wstrict-prototypes -std=gnu99 -Wshadow -Wconversion -Wvla -Wdouble-promotion -Wmissing-noreturn -Wmissing-format-attribute -Wmissing-prototypes) if(CMAKE_C_COMPILER_ID STREQUAL "GNU") - target_compile_options(main_lib INTERFACE + target_compile_options(main_lib INTERFACE -fno-common $<$:-Wno-unused-result> $<$:-Wno-unused-result> $<$:-Wno-unused-result>) @@ -144,17 +144,6 @@ if(WIN32) target_compile_definitions(main_lib INTERFACE _WIN32_WINNT=0x0602 MSWIN) endif() -# OpenBSD's GCC (4.2.1) doesn't have -Wvla -check_c_compiler_flag(-Wvla HAS_WVLA_FLAG) -if(HAS_WVLA_FLAG) - target_compile_options(main_lib INTERFACE -Wvla) -endif() - -check_c_compiler_flag(-fno-common HAVE_FNO_COMMON) -if (HAVE_FNO_COMMON) - target_compile_options(main_lib INTERFACE -fno-common) -endif() - check_c_compiler_flag(-fdiagnostics-color=auto HAS_DIAG_COLOR_FLAG) if(HAS_DIAG_COLOR_FLAG) if(CMAKE_GENERATOR MATCHES "Ninja")