diff options
author | Brad King <brad.king@kitware.com> | 2023-03-13 19:52:14 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2023-03-13 20:18:50 (GMT) |
commit | 97fcd3bd300b19d6ee4b2682fd7c5630c6a1e814 (patch) | |
tree | 04d8e2b7f565942ce8191602c06b16b0b3ab8442 /Tests/RunCMake/CheckCompilerFlag/CheckCompilerFlagCXX.cmake | |
parent | bd74679ab56baa14eedc95958f3ed95466b624bd (diff) | |
download | CMake-97fcd3bd300b19d6ee4b2682fd7c5630c6a1e814.zip CMake-97fcd3bd300b19d6ee4b2682fd7c5630c6a1e814.tar.gz CMake-97fcd3bd300b19d6ee4b2682fd7c5630c6a1e814.tar.bz2 |
CheckCompilerFlag: Revert 'Match the Clang "argument unused" output ...'
Revert commit 5b45a3d0ce (CheckCompilerFlag: Match the Clang "argument
unused" output for all languages, 2023-01-23, v3.26.0-rc1~38^2). It
broke existing projects that were silently tolerating unrelated unused
arguments in their checks for C and CXX. For example, using
`CFLAGS=-nostdinc` or `CXXFLAGS=-nostdinc++` causes those flags to be
used when driving the linker as well, and Clang warns they are unused in
that case.
Add a test case covering the now-restored behavior.
Fixes: #24591
Diffstat (limited to 'Tests/RunCMake/CheckCompilerFlag/CheckCompilerFlagCXX.cmake')
-rw-r--r-- | Tests/RunCMake/CheckCompilerFlag/CheckCompilerFlagCXX.cmake | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/Tests/RunCMake/CheckCompilerFlag/CheckCompilerFlagCXX.cmake b/Tests/RunCMake/CheckCompilerFlag/CheckCompilerFlagCXX.cmake index dec31ec..0026a2a 100644 --- a/Tests/RunCMake/CheckCompilerFlag/CheckCompilerFlagCXX.cmake +++ b/Tests/RunCMake/CheckCompilerFlag/CheckCompilerFlagCXX.cmake @@ -18,6 +18,15 @@ if(CMAKE_CXX_COMPILER_ID MATCHES "GNU|LCC|Clang" AND NOT "x${CMAKE_CXX_SIMULATE_ if(NOT SHOULD_WORK) message(SEND_ERROR "${CMAKE_CXX_COMPILER_ID} compiler flag '-x c++' check failed") endif() + + block() + # Test tolerating a flag that is not used when driving the linker. + string(APPEND CMAKE_CXX_FLAGS " -nostdinc++") + check_compiler_flag(CXX "-x c++" SHOULD_WORK_NOSTDINCXX) + if(NOT SHOULD_WORK_NOSTDINCXX) + message(SEND_ERROR "${CMAKE_CXX_COMPILER_ID} compiler flag '-x c++ -nostdinc++' check failed") + endif() + endblock() endif() if(NOT "$ENV{LC_ALL}" STREQUAL "BAD") |