[CMake] Fix -Wstrict-prototypes

Fixes warnings (or errors, if someone injects -Werror in their build system,
which happens in fact with some folks vendoring LLVM too) with Clang 16:
```
+/var/tmp/portage.notmp/portage/sys-devel/llvm-15.0.4/work/llvm_build-abi_x86_64.amd64/CMakeFiles/CMakeTmp/src.c:3:9: warning: a function declaration without a prototype
is deprecated in all versions of C [-Wstrict-prototypes]
-/var/tmp/portage.notmp/portage/sys-devel/llvm-14.0.4/work/llvm_build-abi_x86_64.amd64/CMakeFiles/CMakeTmp/src.c:3:9: error: a function declaration without a prototype is
deprecated in all versions of C [-Werror,-Wstrict-prototypes]
 int main() {return 0;}
         ^
          void
```

Differential Revision: https://reviews.llvm.org/D137503

(cherry picked from commit 32a2af44e1e882f13d1cc2817f0a8d4d8b375d4d)
This commit is contained in:
Sam James 2022-11-08 01:36:43 +00:00 committed by Tom Stellard
parent 5c68a1cb12
commit c8e7a87b1e
14 changed files with 26 additions and 25 deletions

View file

@ -116,7 +116,7 @@ function(darwin_test_archs os valid_archs)
if(NOT TEST_COMPILE_ONLY) if(NOT TEST_COMPILE_ONLY)
message(STATUS "Finding valid architectures for ${os}...") message(STATUS "Finding valid architectures for ${os}...")
set(SIMPLE_C ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/src.c) set(SIMPLE_C ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/src.c)
file(WRITE ${SIMPLE_C} "#include <stdio.h>\nint main() { printf(__FILE__); return 0; }\n") file(WRITE ${SIMPLE_C} "#include <stdio.h>\nint main(void) { printf(__FILE__); return 0; }\n")
set(os_linker_flags) set(os_linker_flags)
foreach(flag ${DARWIN_${os}_LINK_FLAGS}) foreach(flag ${DARWIN_${os}_LINK_FLAGS})

View file

@ -209,7 +209,7 @@ set(COMPILER_RT_SUPPORTED_ARCH)
# runtime libraries supported by our current compilers cross-compiling # runtime libraries supported by our current compilers cross-compiling
# abilities. # abilities.
set(SIMPLE_SOURCE ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/simple.cc) set(SIMPLE_SOURCE ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/simple.cc)
file(WRITE ${SIMPLE_SOURCE} "#include <stdlib.h>\n#include <stdio.h>\nint main() { printf(\"hello, world\"); }\n") file(WRITE ${SIMPLE_SOURCE} "#include <stdlib.h>\n#include <stdio.h>\nint main(void) { printf(\"hello, world\"); }\n")
# Detect whether the current target platform is 32-bit or 64-bit, and setup # Detect whether the current target platform is 32-bit or 64-bit, and setup
# the correct commandline flags needed to attempt to target 32-bit and 64-bit. # the correct commandline flags needed to attempt to target 32-bit and 64-bit.

View file

@ -745,7 +745,7 @@ else ()
SOURCE "#if !(__ARM_FP & 0x8) SOURCE "#if !(__ARM_FP & 0x8)
#error No double-precision support! #error No double-precision support!
#endif #endif
int main() { return 0; }") int main(void) { return 0; }")
if(NOT COMPILER_RT_HAS_${arch}_VFP_DP) if(NOT COMPILER_RT_HAS_${arch}_VFP_DP)
list(REMOVE_ITEM ${arch}_SOURCES ${arm_Thumb1_VFPv2_DP_SOURCES}) list(REMOVE_ITEM ${arch}_SOURCES ${arm_Thumb1_VFPv2_DP_SOURCES})
endif() endif()

View file

@ -94,7 +94,7 @@ if(CMAKE_CXX_COMPILER_ID MATCHES "Clang")
set(CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS} -Werror=unknown-pragmas") set(CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS} -Werror=unknown-pragmas")
check_c_source_compiles(" check_c_source_compiles("
#pragma comment(lib, \"c\") #pragma comment(lib, \"c\")
int main() { return 0; } int main(void) { return 0; }
" C_SUPPORTS_COMMENT_LIB_PRAGMA) " C_SUPPORTS_COMMENT_LIB_PRAGMA)
cmake_pop_check_state() cmake_pop_check_state()
endif() endif()

View file

@ -77,7 +77,7 @@ if(CMAKE_CXX_COMPILER_ID MATCHES "Clang")
set(CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS} -Werror=unknown-pragmas") set(CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS} -Werror=unknown-pragmas")
check_c_source_compiles(" check_c_source_compiles("
#pragma comment(lib, \"c\") #pragma comment(lib, \"c\")
int main() { return 0; } int main(void) { return 0; }
" C_SUPPORTS_COMMENT_LIB_PRAGMA) " C_SUPPORTS_COMMENT_LIB_PRAGMA)
cmake_pop_check_state() cmake_pop_check_state()
endif() endif()

View file

@ -85,7 +85,7 @@ if(CMAKE_CXX_COMPILER_ID MATCHES "Clang")
set(CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS} -Werror=unknown-pragmas") set(CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS} -Werror=unknown-pragmas")
check_c_source_compiles(" check_c_source_compiles("
#pragma comment(lib, \"c\") #pragma comment(lib, \"c\")
int main() { return 0; } int main(void) { return 0; }
" C_SUPPORTS_COMMENT_LIB_PRAGMA) " C_SUPPORTS_COMMENT_LIB_PRAGMA)
cmake_pop_check_state() cmake_pop_check_state()
endif() endif()

View file

@ -95,7 +95,7 @@ check_c_source_compiles(
#else #else
#error Not building for ARM64 #error Not building for ARM64
#endif #endif
int main() { return 0; } int main(void) { return 0; }
" "
BUILDING_FOR_ARM64_OSX BUILDING_FOR_ARM64_OSX
) )

View file

@ -71,7 +71,7 @@ if(APPLE)
CHECK_C_SOURCE_COMPILES(" CHECK_C_SOURCE_COMPILES("
static const char *__crashreporter_info__ = 0; static const char *__crashreporter_info__ = 0;
asm(\".desc ___crashreporter_info__, 0x10\"); asm(\".desc ___crashreporter_info__, 0x10\");
int main() { return 0; }" int main(void) { return 0; }"
HAVE_CRASHREPORTER_INFO) HAVE_CRASHREPORTER_INFO)
endif() endif()

View file

@ -45,7 +45,7 @@ if(FFI_LIBRARIES)
struct ffi_cif; struct ffi_cif;
typedef struct ffi_cif ffi_cif; typedef struct ffi_cif ffi_cif;
void ffi_call(ffi_cif *cif, void (*fn)(void), void *rvalue, void **avalue); void ffi_call(ffi_cif *cif, void (*fn)(void), void *rvalue, void **avalue);
int main() { ffi_call(0, 0, 0, 0); }" int main(void) { ffi_call(0, 0, 0, 0); }"
HAVE_FFI_CALL) HAVE_FFI_CALL)
cmake_pop_check_state() cmake_pop_check_state()
endif() endif()

View file

@ -20,7 +20,7 @@ if(Terminfo_LIBRARIES)
list(APPEND CMAKE_REQUIRED_LIBRARIES ${Terminfo_LIBRARIES}) list(APPEND CMAKE_REQUIRED_LIBRARIES ${Terminfo_LIBRARIES})
check_c_source_compiles(" check_c_source_compiles("
int setupterm(char *term, int filedes, int *errret); int setupterm(char *term, int filedes, int *errret);
int main() { return setupterm(0, 0, 0); }" int main(void) { return setupterm(0, 0, 0); }"
Terminfo_LINKABLE) Terminfo_LINKABLE)
cmake_pop_check_state() cmake_pop_check_state()
endif() endif()

View file

@ -18,8 +18,9 @@ function(check_z3_version z3_include z3_lib)
# The program that will be executed to print Z3's version. # The program that will be executed to print Z3's version.
file(WRITE ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/testz3.cpp file(WRITE ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/testz3.cpp
"#include <assert.h> "#include <assert.h>
#include <stdio.h>
#include <z3.h> #include <z3.h>
int main() { int main(void) {
unsigned int major, minor, build, rev; unsigned int major, minor, build, rev;
Z3_get_version(&major, &minor, &build, &rev); Z3_get_version(&major, &minor, &build, &rev);
printf(\"%u.%u.%u\", major, minor, build); printf(\"%u.%u.%u\", major, minor, build);

View file

@ -779,7 +779,7 @@ if (LLVM_ENABLE_WARNINGS AND (LLVM_COMPILER_IS_GCC_COMPATIBLE OR CLANG_CL))
# line is also a // comment. # line is also a // comment.
set(OLD_CMAKE_REQUIRED_FLAGS ${CMAKE_REQUIRED_FLAGS}) set(OLD_CMAKE_REQUIRED_FLAGS ${CMAKE_REQUIRED_FLAGS})
set(CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS} -Werror -Wcomment") set(CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS} -Werror -Wcomment")
CHECK_C_SOURCE_COMPILES("// \\\\\\n//\\nint main() {return 0;}" CHECK_C_SOURCE_COMPILES("// \\\\\\n//\\nint main(void) {return 0;}"
C_WCOMMENT_ALLOWS_LINE_WRAP) C_WCOMMENT_ALLOWS_LINE_WRAP)
set(CMAKE_REQUIRED_FLAGS ${OLD_CMAKE_REQUIRED_FLAGS}) set(CMAKE_REQUIRED_FLAGS ${OLD_CMAKE_REQUIRED_FLAGS})
if (NOT C_WCOMMENT_ALLOWS_LINE_WRAP) if (NOT C_WCOMMENT_ALLOWS_LINE_WRAP)

View file

@ -27,7 +27,7 @@ function(libomp_check_version_symbols retval)
void func2() { printf(\"World\"); } void func2() { printf(\"World\"); }
__asm__(\".symver func1, func@VER1\"); __asm__(\".symver func1, func@VER1\");
__asm__(\".symver func2, func@VER2\"); __asm__(\".symver func2, func@VER2\");
int main() { int main(void) {
func1(); func1();
func2(); func2();
return 0; return 0;

View file

@ -64,7 +64,7 @@ if (POLLY_BUNDLED_ISL)
check_c_source_compiles(" check_c_source_compiles("
${_includes} ${_includes}
${_type} typeVar; ${_type} typeVar;
int main() { int main(void) {
return 0; return 0;
} }
" ${_variable}) " ${_variable})
@ -73,7 +73,7 @@ if (POLLY_BUNDLED_ISL)
check_c_source_compiles(" check_c_source_compiles("
int func(void) __attribute__((__warn_unused_result__)); int func(void) __attribute__((__warn_unused_result__));
int main() { return 0; } int main(void) { return 0; }
" HAS_ATTRIBUTE_WARN_UNUSED_RESULT) " HAS_ATTRIBUTE_WARN_UNUSED_RESULT)
set(GCC_WARN_UNUSED_RESULT) set(GCC_WARN_UNUSED_RESULT)
if (HAS_ATTRIBUTE_WARN_UNUSED_RESULT) if (HAS_ATTRIBUTE_WARN_UNUSED_RESULT)
@ -82,22 +82,22 @@ if (POLLY_BUNDLED_ISL)
check_c_source_compiles(" check_c_source_compiles("
__attribute__ ((unused)) static void foo(void); __attribute__ ((unused)) static void foo(void);
int main() { return 0; } int main(void) { return 0; }
" HAVE___ATTRIBUTE__) " HAVE___ATTRIBUTE__)
check_c_source_compiles_numeric(" check_c_source_compiles_numeric("
#include <strings.h> #include <strings.h>
int main() { (void)ffs(0); return 0; } int main(void) { (void)ffs(0); return 0; }
" HAVE_DECL_FFS) " HAVE_DECL_FFS)
check_c_source_compiles_numeric(" check_c_source_compiles_numeric("
int main() { (void)__builtin_ffs(0); return 0; } int main(void) { (void)__builtin_ffs(0); return 0; }
" HAVE_DECL___BUILTIN_FFS) " HAVE_DECL___BUILTIN_FFS)
check_c_source_compiles_numeric(" check_c_source_compiles_numeric("
#include <intrin.h> #include <intrin.h>
int main() { (void)_BitScanForward(NULL, 0); return 0; } int main(void) { (void)_BitScanForward(NULL, 0); return 0; }
" HAVE_DECL__BITSCANFORWARD) " HAVE_DECL__BITSCANFORWARD)
if (NOT HAVE_DECL_FFS AND if (NOT HAVE_DECL_FFS AND
@ -109,12 +109,12 @@ if (POLLY_BUNDLED_ISL)
check_c_source_compiles_numeric(" check_c_source_compiles_numeric("
#include <strings.h> #include <strings.h>
int main() { (void)strcasecmp(\"\", \"\"); return 0; } int main(void) { (void)strcasecmp(\"\", \"\"); return 0; }
" HAVE_DECL_STRCASECMP) " HAVE_DECL_STRCASECMP)
check_c_source_compiles_numeric(" check_c_source_compiles_numeric("
#include <string.h> #include <string.h>
int main() { (void)_stricmp(\"\", \"\"); return 0; } int main(void) { (void)_stricmp(\"\", \"\"); return 0; }
" HAVE_DECL__STRICMP) " HAVE_DECL__STRICMP)
if (NOT HAVE_DECL_STRCASECMP AND NOT HAVE_DECL__STRICMP) if (NOT HAVE_DECL_STRCASECMP AND NOT HAVE_DECL__STRICMP)
@ -124,12 +124,12 @@ if (POLLY_BUNDLED_ISL)
check_c_source_compiles_numeric(" check_c_source_compiles_numeric("
#include <strings.h> #include <strings.h>
int main() { (void)strncasecmp(\"\", \"\", 0); return 0; } int main(void) { (void)strncasecmp(\"\", \"\", 0); return 0; }
" HAVE_DECL_STRNCASECMP) " HAVE_DECL_STRNCASECMP)
check_c_source_compiles_numeric(" check_c_source_compiles_numeric("
#include <string.h> #include <string.h>
int main() { (void)_strnicmp(\"\", \"\", 0); return 0; } int main(void) { (void)_strnicmp(\"\", \"\", 0); return 0; }
" HAVE_DECL__STRNICMP) " HAVE_DECL__STRNICMP)
if (NOT HAVE_DECL_STRNCASECMP AND NOT HAVE_DECL__STRNICMP) if (NOT HAVE_DECL_STRNCASECMP AND NOT HAVE_DECL__STRNICMP)
@ -139,12 +139,12 @@ if (POLLY_BUNDLED_ISL)
check_c_source_compiles_numeric(" check_c_source_compiles_numeric("
#include <stdio.h> #include <stdio.h>
int main() { snprintf((void*)0, 0, \" \"); return 0; } int main(void) { snprintf((void*)0, 0, \" \"); return 0; }
" HAVE_DECL_SNPRINTF) " HAVE_DECL_SNPRINTF)
check_c_source_compiles_numeric(" check_c_source_compiles_numeric("
#include <stdio.h> #include <stdio.h>
int main() { _snprintf((void*)0, 0, \" \"); return 0; } int main(void) { _snprintf((void*)0, 0, \" \"); return 0; }
" HAVE_DECL__SNPRINTF) " HAVE_DECL__SNPRINTF)
if (NOT HAVE_DECL_SNPRINTF AND NOT HAVE_DECL__SNPRINTF) if (NOT HAVE_DECL_SNPRINTF AND NOT HAVE_DECL__SNPRINTF)