Browse Source

Merge topic 'CheckCCompilerFlag-strict-prototypes'

b3efdb5 CheckCCompilerFlag: Strict signature of 'main' (#11615)
Brad King 15 years ago
parent
commit
d89514f190
2 changed files with 7 additions and 1 deletions
  1. 1 1
      Modules/CheckCCompilerFlag.cmake
  2. 6 0
      Tests/TryCompile/CMakeLists.txt

+ 1 - 1
Modules/CheckCCompilerFlag.cmake

@@ -25,7 +25,7 @@ INCLUDE(CheckCSourceCompiles)
 MACRO (CHECK_C_COMPILER_FLAG _FLAG _RESULT)
    SET(SAFE_CMAKE_REQUIRED_DEFINITIONS "${CMAKE_REQUIRED_DEFINITIONS}")
    SET(CMAKE_REQUIRED_DEFINITIONS "${_FLAG}")
-   CHECK_C_SOURCE_COMPILES("int main() { return 0;}" ${_RESULT}
+   CHECK_C_SOURCE_COMPILES("int main(void) { return 0; }" ${_RESULT}
      # Some compilers do not fail with a bad flag
      FAIL_REGEX "unrecognized .*option"                     # GNU
      FAIL_REGEX "ignoring unknown option"                   # MSVC

+ 6 - 0
Tests/TryCompile/CMakeLists.txt

@@ -226,3 +226,9 @@ UNSET(CXX_BOGUS_FLAG CACHE)
 INCLUDE(CheckCXXCompilerFlag)
 CHECK_CXX_COMPILER_FLAG(${CXX_DD}-_this_is_not_a_flag_ CXX_BOGUS_FLAG)
 TEST_FAIL(CXX_BOGUS_FLAG "CHECK_CXX_COMPILER_FLAG() succeeded, but should have failed")
+
+IF("${CMAKE_C_COMPILER_ID}" STREQUAL "GNU")
+  UNSET(C_STRICT_PROTOTYPES CACHE)
+  CHECK_C_COMPILER_FLAG("-Werror;-Wstrict-prototypes" C_STRICT_PROTOTYPES)
+  TEST_ASSERT(C_STRICT_PROTOTYPES "CHECK_C_COMPILER_FLAG failed -Werror -Wstrict-prototypes")
+ENDIF()