Skip to content

Commit 3b52be7

Browse files
committed
Revert "Remove some try_compile CMake checks for compiler flags (llvm#92953)"
This reverts commit 4feae05.
1 parent 4bce270 commit 3b52be7

File tree

6 files changed

+121
-94
lines changed

6 files changed

+121
-94
lines changed

clang/CMakeLists.txt

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -350,7 +350,10 @@ if (LLVM_COMPILER_IS_GCC_COMPATIBLE)
350350
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pedantic -Wno-long-long")
351351
endif ()
352352

353-
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-nested-anon-types" )
353+
check_cxx_compiler_flag("-Werror -Wnested-anon-types" CXX_SUPPORTS_NO_NESTED_ANON_TYPES_FLAG)
354+
if( CXX_SUPPORTS_NO_NESTED_ANON_TYPES_FLAG )
355+
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-nested-anon-types" )
356+
endif()
354357
endif ()
355358

356359
# Determine HOST_LINK_VERSION on Darwin.

clang/tools/scan-build-py/tests/functional/exec/CMakeLists.txt

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,11 @@ project(exec C)
22

33
cmake_minimum_required(VERSION 3.20.0)
44

5-
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=c99")
5+
include(CheckCCompilerFlag)
6+
check_c_compiler_flag("-std=c99" C99_SUPPORTED)
7+
if (C99_SUPPORTED)
8+
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=c99")
9+
endif()
610

711
include(CheckFunctionExists)
812
include(CheckSymbolExists)

lldb/cmake/modules/LLDBConfig.cmake

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -187,18 +187,24 @@ include_directories("${CMAKE_CURRENT_BINARY_DIR}/../clang/include")
187187
# form -W<foo>, and if supported, add the corresponding -Wno-<foo> option.
188188

189189
# Disable GCC warnings
190-
append("-Wno-deprecated-declarations" CMAKE_CXX_FLAGS)
191-
append("-Wno-unknown-pragmas" CMAKE_CXX_FLAGS)
192-
append("-Wno-strict-aliasing" CMAKE_CXX_FLAGS)
190+
check_cxx_compiler_flag("-Wdeprecated-declarations" CXX_SUPPORTS_DEPRECATED_DECLARATIONS)
191+
append_if(CXX_SUPPORTS_DEPRECATED_DECLARATIONS "-Wno-deprecated-declarations" CMAKE_CXX_FLAGS)
192+
193+
check_cxx_compiler_flag("-Wunknown-pragmas" CXX_SUPPORTS_UNKNOWN_PRAGMAS)
194+
append_if(CXX_SUPPORTS_UNKNOWN_PRAGMAS "-Wno-unknown-pragmas" CMAKE_CXX_FLAGS)
195+
196+
check_cxx_compiler_flag("-Wstrict-aliasing" CXX_SUPPORTS_STRICT_ALIASING)
197+
append_if(CXX_SUPPORTS_STRICT_ALIASING "-Wno-strict-aliasing" CMAKE_CXX_FLAGS)
193198

194199
check_cxx_compiler_flag("-Wstringop-truncation" CXX_SUPPORTS_STRINGOP_TRUNCATION)
195200
append_if(CXX_SUPPORTS_STRINGOP_TRUNCATION "-Wno-stringop-truncation" CMAKE_CXX_FLAGS)
196201

197202
# Disable Clang warnings
198-
if (CMAKE_CXX_COMPILER_ID MATCHES "Clang")
199-
append("-Wno-deprecated-register" CMAKE_CXX_FLAGS)
200-
append("-Wno-vla-extension" CMAKE_CXX_FLAGS)
201-
endif()
203+
check_cxx_compiler_flag("-Wdeprecated-register" CXX_SUPPORTS_DEPRECATED_REGISTER)
204+
append_if(CXX_SUPPORTS_DEPRECATED_REGISTER "-Wno-deprecated-register" CMAKE_CXX_FLAGS)
205+
206+
check_cxx_compiler_flag("-Wvla-extension" CXX_SUPPORTS_VLA_EXTENSION)
207+
append_if(CXX_SUPPORTS_VLA_EXTENSION "-Wno-vla-extension" CMAKE_CXX_FLAGS)
202208

203209
# Disable MSVC warnings
204210
if( MSVC )

llvm/cmake/config-ix.cmake

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -426,18 +426,15 @@ if( LLVM_ENABLE_PIC )
426426
set(ENABLE_PIC 1)
427427
else()
428428
set(ENABLE_PIC 0)
429-
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fno-pie")
429+
check_cxx_compiler_flag("-fno-pie" SUPPORTS_NO_PIE_FLAG)
430+
if(SUPPORTS_NO_PIE_FLAG)
431+
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fno-pie")
432+
endif()
430433
endif()
431434

432-
set(SUPPORTS_VARIADIC_MACROS_FLAG 0)
433-
if (LLVM_COMPILER_IS_GCC_COMPATIBLE)
434-
set(SUPPORTS_VARIADIC_MACROS_FLAG 1)
435-
endif()
436-
if (CMAKE_CXX_COMPILER_ID MATCHES "Clang")
437-
set(SUPPORTS_GNU_ZERO_VARIADIC_MACRO_ARGUMENTS_FLAG 1)
438-
else()
439-
set(SUPPORTS_GNU_ZERO_VARIADIC_MACRO_ARGUMENTS_FLAG 0)
440-
endif()
435+
check_cxx_compiler_flag("-Wvariadic-macros" SUPPORTS_VARIADIC_MACROS_FLAG)
436+
check_cxx_compiler_flag("-Wgnu-zero-variadic-macro-arguments"
437+
SUPPORTS_GNU_ZERO_VARIADIC_MACRO_ARGUMENTS_FLAG)
441438

442439
set(USE_NO_MAYBE_UNINITIALIZED 0)
443440
set(USE_NO_UNINITIALIZED 0)
@@ -447,9 +444,11 @@ set(USE_NO_UNINITIALIZED 0)
447444
if (CMAKE_COMPILER_IS_GNUCXX)
448445
# Disable all -Wuninitialized warning for old GCC versions.
449446
if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS 12.0)
450-
set(USE_NO_UNINITIALIZED 1)
447+
check_cxx_compiler_flag("-Wuninitialized" HAS_UNINITIALIZED)
448+
set(USE_NO_UNINITIALIZED ${HAS_UNINITIALIZED})
451449
else()
452-
set(USE_NO_MAYBE_UNINITIALIZED 1)
450+
check_cxx_compiler_flag("-Wmaybe-uninitialized" HAS_MAYBE_UNINITIALIZED)
451+
set(USE_NO_MAYBE_UNINITIALIZED ${HAS_MAYBE_UNINITIALIZED})
453452
endif()
454453
endif()
455454

llvm/cmake/modules/AddLLVM.cmake

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -276,11 +276,11 @@ if (NOT DEFINED LLVM_LINKER_DETECTED AND NOT WIN32)
276276

277277
if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
278278
include(CheckLinkerFlag)
279-
# Linkers that support Darwin allow a setting to internalize all symbol exports,
279+
# Linkers that support Darwin allow a setting to internalize all symbol exports,
280280
# aiding in reducing binary size and often is applicable for executables.
281281
check_linker_flag(C "-Wl,-no_exported_symbols" LLVM_LINKER_SUPPORTS_NO_EXPORTED_SYMBOLS)
282-
283-
if (NOT LLVM_USE_LINKER)
282+
283+
if (NOT LLVM_USE_LINKER)
284284
# Apple's linker complains about duplicate libraries, which CMake likes to do
285285
# to support ELF platforms. To silence that warning, we can use
286286
# -no_warn_duplicate_libraries, but only in versions of the linker that
@@ -289,8 +289,8 @@ if (NOT DEFINED LLVM_LINKER_DETECTED AND NOT WIN32)
289289
else()
290290
set(LLVM_LINKER_SUPPORTS_NO_WARN_DUPLICATE_LIBRARIES OFF CACHE INTERNAL "")
291291
endif()
292-
293-
else()
292+
293+
else()
294294
set(LLVM_LINKER_SUPPORTS_NO_EXPORTED_SYMBOLS OFF CACHE INTERNAL "")
295295
endif()
296296
endif()
@@ -1069,7 +1069,7 @@ macro(add_llvm_executable name)
10691069
add_llvm_symbol_exports( ${name} ${LLVM_EXPORTED_SYMBOL_FILE} )
10701070
endif(LLVM_EXPORTED_SYMBOL_FILE)
10711071

1072-
if (DEFINED LLVM_ENABLE_EXPORTED_SYMBOLS_IN_EXECUTABLES AND
1072+
if (DEFINED LLVM_ENABLE_EXPORTED_SYMBOLS_IN_EXECUTABLES AND
10731073
NOT LLVM_ENABLE_EXPORTED_SYMBOLS_IN_EXECUTABLES)
10741074
if(LLVM_LINKER_SUPPORTS_NO_EXPORTED_SYMBOLS)
10751075
set_property(TARGET ${name} APPEND_STRING PROPERTY
@@ -1677,7 +1677,7 @@ function(add_unittest test_suite test_name)
16771677

16781678
if (SUPPORTS_VARIADIC_MACROS_FLAG)
16791679
list(APPEND LLVM_COMPILE_FLAGS "-Wno-variadic-macros")
1680-
endif()
1680+
endif ()
16811681
# Some parts of gtest rely on this GNU extension, don't warn on it.
16821682
if(SUPPORTS_GNU_ZERO_VARIADIC_MACRO_ARGUMENTS_FLAG)
16831683
list(APPEND LLVM_COMPILE_FLAGS "-Wno-gnu-zero-variadic-macro-arguments")

0 commit comments

Comments
 (0)