[Insight-developers] A massive number of new warnings
Hans Johnson
hans-johnson at uiowa.edu
Thu Jan 6 16:02:44 EST 2011
I was toying with the idea of adding something like is shown at the bottom
of this message.
We could safely build up a larger set of "recommended" compiler flags for
each of the release types rather than just "-g" and "-O3".
I think that -Wall should be the default flag, and that developers have to
explicitly turn it off. That way it's not just the 4 of us triaging all
these complier warnings.
NOTE: The code below is not working, but I think it gets the point across.
Hans
#To create a portable build system, it is best to not test for platforms,
but to test for features.
#
#Instead of testing "if Windows then do this", test for "if the
-Wno-invalid-offsetof flag works then use it". You can do that with the
CheckCCompilerFlag module, for example:
include(CheckCCompilerFlag)
include(CheckCXXCompilerFlag)
set(C_RELEASE_DESIRED_FLAGS "")
set(CXX_RELEASE_DESIRED_FLAGS "")
# -Wall
check_c_compiler_flag(-Wall HAS_ALL_WARNINGS_C)
if (HAS_ALL_WARNINGS_C)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall")
endif()
check_cxx_compiler_flag(-Wall HAS_ALL_WARNINGS_CXX)
if (HAS_ALL_WARNINGS_CXX)
set(CMAKE_CXX_FLAGS "${CMAKE_C_FLAGS} -Wall")
endif()
## -pedantic
check_c_compiler_flag(-pedantic HAS_PEDANTIC_C)
if (HAS_PEDANTIC_C)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -pedantic")
endif()
check_cxx_compiler_flag(-pedantic HAS_PEDANTIC_CXX)
if (HAS_PEDANTIC_CXX)
set(CMAKE_CXX_FLAGS "${CMAKE_C_FLAGS} -pedantic")
endif()
## -Wextra
check_c_compiler_flag(-Wextra HAS_EXTRA_WARNINGS_C)
if (HAS_EXTRA_WARNINGS_C)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wextra")
endif()
check_cxx_compiler_flag(-Wextra HAS_EXTRA_WARNINGS_CXX)
if (HAS_EXTRA_WARNINGS_CXX)
set(CMAKE_CXX_FLAGS "${CMAKE_C_FLAGS} -Wextra")
endif()
## -Wshadow
check_c_compiler_flag(-Wshadow HAS_SHADOW_WARNINGS_C)
if (HAS_SHADOW_WARNINGS_C)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wshadow")
endif()
check_cxx_compiler_flag(-Wshadow HAS_SHADOW_WARNINGS_CXX)
if (HAS_SHADOW_WARNINGS_CXX)
set(CMAKE_CXX_FLAGS "${CMAKE_C_FLAGS} -Wshadow")
endif()
## -Wlong-long We should not use the long-long type in ITK
check_c_compiler_flag(-Wlong-long HAS_LONG_LONG_WARNINGS_C)
if (HAS_LONG_LONG_WARNINGS_C)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wlong-long")
endif()
check_cxx_compiler_flag(-Wlong-long HAS_LONG_LONG_WARNINGS_CXX)
if (HAS_LONG_LONG_WARNINGS_CXX)
set(CMAKE_CXX_FLAGS "${CMAKE_C_FLAGS} -Wlong-long")
endif()
check_cxx_compiler_flag(-Wno-invalid-offsetof HAS_NO_INVALID_OFFSETOF)
if (HAS_NO_INVALID_OFFSETOF)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-invalid-offsetof")
endif()
message(${CMAKE_C_FLAGS})
message(${CMAKE_CXX_FLAGS})
On 1/6/11 2:55 PM, "Luis Ibanez" <luis.ibanez at kitware.com> wrote:
> I just added -Wall and -Wextra to the builds in
> zion, thurmite and eldorado.
>
> It's time to follow Bill L. in the zero-warning campaign :-)
>
>
> Luis
>
>
> ----------------------------------
> On Wed, Jan 5, 2011 at 6:32 PM, Sean McBride <sean at rogue-research.com> wrote:
>> That build is only using -Wall and -Wextra, which my gcc dashboards also
>> use, and yet mine show a much smaller number of warnings. Strange that
>> a newer gcc would not warn where an older gcc does, one reason could be
>> that they were false positives in the older version. In any case, there
>> are less warnings than it seems since some are caused by headers and so
>> repeated in many source files.
>>
>> On Wed, 5 Jan 2011 17:01:46 -0500, Bill Lorensen said:
>>
>>> I think they are valid warnings.
>>>
>>> On Wed, Jan 5, 2011 at 4:20 PM, Hans Johnson <hans-johnson at uiowa.edu> wrote:
>>>> This looks like the Insight-gcc-3.3. Has a definitive decision been made
>>>> regarding compilers less than 4? I thought that less than 3.4 was excluded
>>>> because of incompatibility issues.
>>
>>
>>
--
Hans J. Johnson, Ph.D.
Assistant Professor
200 Hawkins Drive
T205 BT, The University of Iowa
Iowa City, IA 52242
hans-johnson at uiowa.edu
PHONE: 319 353 8587
More information about the Insight-developers
mailing list