diff --git a/base/applications/network/telnet/CMakeLists.txt b/base/applications/network/telnet/CMakeLists.txt index 8d0de5ac306..a11ea4f3628 100644 --- a/base/applications/network/telnet/CMakeLists.txt +++ b/base/applications/network/telnet/CMakeLists.txt @@ -36,7 +36,10 @@ if (NOT MSVC) endif() if(CMAKE_C_COMPILER_ID STREQUAL "GNU" OR CMAKE_C_COMPILER_ID STREQUAL "Clang") - target_compile_options(telnet PRIVATE -Wno-restrict $<$:-Wno-narrowing>) + target_compile_options(telnet PRIVATE $<$:-Wno-narrowing>) + if(CMAKE_C_COMPILER_ID STREQUAL "GNU") + target_compile_options(telnet PRIVATE $<$:-Wno-restrict>) + endif() endif() set_module_type(telnet win32cui) diff --git a/drivers/filesystems/udfs/Include/mem_tools.h b/drivers/filesystems/udfs/Include/mem_tools.h index fdc29f2a1a7..d05cc9b2c23 100644 --- a/drivers/filesystems/udfs/Include/mem_tools.h +++ b/drivers/filesystems/udfs/Include/mem_tools.h @@ -222,7 +222,7 @@ VOID inline MyFreePool__(PVOID addr) { #endif //MY_MEM_BOUNDS_CHECK /* This function just scares the hell out of GCC */ -#ifdef __GNUC__ +#if defined(__GNUC__) && !defined(__clang__) #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wstringop-overflow" #endif @@ -298,7 +298,7 @@ ULONG inline MyReallocPool__(PCHAR addr, ULONG len, PCHAR *pnewaddr, ULONG newle */ return newlen; } -#ifdef __GNUC__ +#if defined(__GNUC__) && !defined(__clang__) #pragma GCC diagnostic pop #endif diff --git a/modules/rosapps/applications/devutils/createspec/CMakeLists.txt b/modules/rosapps/applications/devutils/createspec/CMakeLists.txt index e008438e191..f483aa07fee 100644 --- a/modules/rosapps/applications/devutils/createspec/CMakeLists.txt +++ b/modules/rosapps/applications/devutils/createspec/CMakeLists.txt @@ -2,8 +2,8 @@ add_executable(createspec createspec.c) set_module_type(createspec win32cui) target_link_libraries(createspec wine) -if(NOT MSVC) - target_compile_options(createspec PRIVATE -Wno-stringop-overflow) +if(CMAKE_C_COMPILER_ID STREQUAL "GNU") + target_compile_options(createspec PRIVATE $<$:-Wno-stringop-overflow>) endif() add_importlibs(createspec dbghelp msvcrt kernel32) add_cd_file(TARGET createspec DESTINATION reactos/system32 FOR all) diff --git a/modules/rostests/winetests/msvcrt/CMakeLists.txt b/modules/rostests/winetests/msvcrt/CMakeLists.txt index 40e532ab653..53cb3a0067c 100644 --- a/modules/rostests/winetests/msvcrt/CMakeLists.txt +++ b/modules/rostests/winetests/msvcrt/CMakeLists.txt @@ -28,7 +28,10 @@ target_compile_definitions(msvcrt_winetest PRIVATE __msvcrt_ulong=ULONG) if(CMAKE_C_COMPILER_ID STREQUAL "GNU" OR CMAKE_C_COMPILER_ID STREQUAL "Clang") - target_compile_options(msvcrt_winetest PRIVATE -Wno-format -Wno-stringop-truncation -Wno-overflow) + target_compile_options(msvcrt_winetest PRIVATE $<$:-Wno-format -Wno-overflow>) + if(CMAKE_C_COMPILER_ID STREQUAL "GNU") + target_compile_options(msvcrt_winetest PRIVATE $<$:-Wno-stringop-truncation>) + endif() endif() set_module_type(msvcrt_winetest win32cui) diff --git a/sdk/cmake/gcc.cmake b/sdk/cmake/gcc.cmake index 384aec75e8d..0acd34cc8c9 100644 --- a/sdk/cmake/gcc.cmake +++ b/sdk/cmake/gcc.cmake @@ -96,6 +96,10 @@ add_compile_options(-march=${OARCH} -mtune=${TUNE}) # Warnings, errors if((NOT CMAKE_BUILD_TYPE STREQUAL "Release") AND (NOT CMAKE_C_COMPILER_ID STREQUAL Clang)) add_compile_options(-Werror) +else() + if(CMAKE_C_COMPILER_ID STREQUAL "Clang") + add_compile_options($<$:-Werror=unknown-warning-option>) + endif() endif() add_compile_options(-Wall -Wpointer-arith) diff --git a/sdk/cmake/msvc.cmake b/sdk/cmake/msvc.cmake index be080bf40dd..24f59b2d833 100644 --- a/sdk/cmake/msvc.cmake +++ b/sdk/cmake/msvc.cmake @@ -23,8 +23,7 @@ endif() add_compile_options(/GF) # Enable function level linking and comdat folding (only C/C++, not ASM!) -add_compile_options($<$:/Gy>) -add_compile_options($<$:/Gy>) +add_compile_options($<$:/Gy>) add_link_options(/OPT:REF /OPT:ICF) if(ARCH STREQUAL "i386") @@ -145,6 +144,7 @@ endif() add_compile_options(/w14115) if(CMAKE_C_COMPILER_ID STREQUAL "Clang") + add_compile_options($<$:-Werror=unknown-warning-option>) add_compile_options("$<$:-nostdinc;-Wno-multichar;-Wno-char-subscripts;-Wno-microsoft-enum-forward-reference;-Wno-pragma-pack;-Wno-microsoft-anon-tag;-Wno-parentheses-equality;-Wno-unknown-pragmas>") endif()