[cmake-developers] [CMake 0011753]: int main() can cause warnings when -Wstrict-prototypes and -Werror is used
Mantis Bug Tracker
mantis at public.kitware.com
Tue Jan 25 19:34:40 EST 2011
The following issue has been SUBMITTED.
======================================================================
http://www.cmake.org/Bug/view.php?id=11753
======================================================================
Reported By: James Bigler
Assigned To:
======================================================================
Project: CMake
Issue ID: 11753
Category: (No Category)
Reproducibility: have not tried
Severity: minor
Priority: normal
Status: new
======================================================================
Date Submitted: 2011-01-25 19:34 EST
Last Modified: 2011-01-25 19:34 EST
======================================================================
Summary: int main() can cause warnings when
-Wstrict-prototypes and -Werror is used
Description:
In our projects we use -Wall -Wstrict-prototypes -Werror, and I just noticed
that this causes all sorts of problems for the test code.
There seems like there are two solutions to this.
1. Fix all the test code, so that these warnings are tripped.
2. Somehow intercept try_compile so that it doesn't pass along things like
-Werror.
I've attempted to implement http://www.cmake.org/Bug/view.php?id=1 since it
seems easier than modifying all the try_compile blocks with a compiler specific
flag.
I've also attached a patch against my 2.8.3 installation.
Additional Information:
grep -nH -e "int main()" *
CheckCCompilerFlag.cmake:28: CHECK_C_SOURCE_COMPILES("int main() { return 0;}"
${_RESULT}
CheckCXXCompilerFlag.cmake:28: CHECK_CXX_SOURCE_COMPILES("int main() { return
0;}" ${_RESULT}
CheckForPthreads.c:9:int main(){
CheckFunctionExists.c:5:int main(){
CheckIncludeFile.c.in:4:int main()
CheckIncludeFile.cxx.in:3:int main()
CheckIncludeFiles.cmake:45: "${CMAKE_CONFIGURABLE_FILE_CONTENT}\n\nint
main(){return 0;}\n")
CheckStructHasMember.cmake:41:int main()
CheckSymbolExists.cmake:50: "${CMAKE_CONFIGURABLE_FILE_CONTENT}\nvoid
cmakeRequireSymbol(int dummy,...){(void)dummy;}\nint main()\n{\n#ifndef
${SYMBOL}\n cmakeRequireSymbol(0,&${SYMBOL});\n#endif\n return 0;\n}\n")
CheckVariableExists.c:6:int main(){
CMakeDetermineVSServicePack.cmake:64: "int main() { return 0; }\n")
CMakeTestCXXCompiler.cmake:28: "int main(){return 0;}\n")
CMakeTestForFreeVC.cxx:3:int main(){return 0;}
DummyCXXFile.cxx:1:int main()
FindOpenMP.cmake:57:int main() {
======================================================================
Issue History
Date Modified Username Field Change
======================================================================
2011-01-25 19:34 James Bigler New Issue
2011-01-25 19:34 James Bigler File Added: main-void.patch
======================================================================
More information about the cmake-developers
mailing list