mirror of
https://github.com/HDFGroup/hdf5.git
synced 2025-01-30 15:32:37 +08:00
Merge pull request #1204 in HDFFV/hdf5 from ~BYRN/hdf5_merge_adb:develop to develop
* commit '454b04176ae8daeadcd26bb532ed77c4c051a9c3': Update cmake warnings to match the autotools files better
This commit is contained in:
commit
a7a814fa83
@ -215,6 +215,7 @@ if (NOT HDF5_EXTERNALLY_CONFIGURED)
|
||||
if (HDF5_PACK_INSTALL_DOCS)
|
||||
set (release_files
|
||||
${release_files}
|
||||
${HDF5_SOURCE_DIR}/release_docs/INSTALL_Warnings.txt
|
||||
${HDF5_SOURCE_DIR}/release_docs/INSTALL_CMake.txt
|
||||
${HDF5_SOURCE_DIR}/release_docs/HISTORY-1_8.txt
|
||||
${HDF5_SOURCE_DIR}/release_docs/INSTALL
|
||||
|
1
MANIFEST
1
MANIFEST
@ -445,6 +445,7 @@
|
||||
./release_docs/INSTALL_CMake.txt
|
||||
./release_docs/INSTALL_Cygwin.txt
|
||||
./release_docs/INSTALL_parallel
|
||||
./release_docs/INSTALL_Warnings.txt
|
||||
./release_docs/INSTALL_Windows.txt
|
||||
./release_docs/RELEASE.txt
|
||||
./release_docs/USING_HDF5_CMake.txt
|
||||
|
@ -9,6 +9,8 @@
|
||||
# If you do not have access to either file, you may request a copy from
|
||||
# help@hdfgroup.org.
|
||||
#
|
||||
|
||||
message (STATUS "Warnings Configuration:")
|
||||
#-----------------------------------------------------------------------------
|
||||
# Compiler specific flags : Shouldn't there be compiler tests for these
|
||||
#-----------------------------------------------------------------------------
|
||||
@ -45,6 +47,7 @@ endif ()
|
||||
#-----------------------------------------------------------------------------
|
||||
option (HDF5_DISABLE_COMPILER_WARNINGS "Disable compiler warnings" OFF)
|
||||
if (HDF5_DISABLE_COMPILER_WARNINGS)
|
||||
message (STATUS "....Compiler warnings are suppressed")
|
||||
# MSVC uses /w to suppress warnings. It also complains if another
|
||||
# warning level is given, so remove it.
|
||||
if (MSVC)
|
||||
@ -79,79 +82,55 @@ endif ()
|
||||
# break into groups (from the config/gnu-flags file)
|
||||
#-----------------------------------------------------------------------------
|
||||
if (NOT MSVC AND CMAKE_COMPILER_IS_GNUCC)
|
||||
if (NOT ${CMAKE_SYSTEM_NAME} MATCHES "SunOS")
|
||||
set (CMAKE_C_FLAGS_5 "${CMAKE_C_FLAGS_5} -Wcast-qual")
|
||||
set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wundef -Wshadow -Wpointer-arith -Wbad-function-cast -Wcast-align -Wwrite-strings -Wconversion -Waggregate-return -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wredundant-decls -Wnested-externs")
|
||||
else ()
|
||||
if (${CMAKE_SYSTEM_NAME} MATCHES "SunOS")
|
||||
set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -erroff=%none -DBSD_COMP")
|
||||
else ()
|
||||
# General flags
|
||||
#
|
||||
# Note that some of the flags listed here really should be developer
|
||||
# flags (listed in a separate variable, below) but we put them here
|
||||
# because they are not raised by the current code and we'd like to
|
||||
# know if they do start showing up.
|
||||
#
|
||||
# NOTE: Don't add -Wpadded here since we can't/won't fix the (many)
|
||||
# warnings that are emitted. If you need it, add it at configure time.
|
||||
set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -pedantic -Wall -Wextra")
|
||||
set (H5_CFLAGS0 "${H5_CFLAGS0} -Wbad-function-cast -Wc++-compat -Wcast-align")
|
||||
set (H5_CFLAGS0 "${H5_CFLAGS0} -Wcast-qual -Wconversion -Wdeclaration-after-statement -Wdisabled-optimization -Wfloat-equal")
|
||||
set (H5_CFLAGS0 "${H5_CFLAGS0} -Wformat=2 -Winit-self -Winvalid-pch -Wmissing-declarations -Wmissing-include-dirs")
|
||||
set (H5_CFLAGS0 "${H5_CFLAGS0} -Wmissing-prototypes -Wnested-externs -Wold-style-definition -Wpacked -Wpointer-arith")
|
||||
set (H5_CFLAGS0 "${H5_CFLAGS0} -Wredundant-decls -Wshadow -Wstrict-prototypes -Wswitch-default -Wswitch-enum")
|
||||
set (H5_CFLAGS0 "${H5_CFLAGS0} -Wundef -Wunused-macros -Wunsafe-loop-optimizations -Wwrite-strings")
|
||||
# gcc automatically inlines based on the optimization level
|
||||
# this is just a failsafe
|
||||
set (H5_CFLAGS0 "${H5_CFLAGS0} -finline-functions")
|
||||
endif ()
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
# Option to allow the user to enable developer warnings
|
||||
# Developer warnings (suggestions from gcc, not code problems)
|
||||
#-----------------------------------------------------------------------------
|
||||
option (HDF5_ENABLE_DEV_WARNINGS "Enable HDF5 developer group warnings" OFF)
|
||||
if (HDF5_ENABLE_DEV_WARNINGS)
|
||||
set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Winline -Waggregate-return")
|
||||
message (STATUS "....HDF5 developer group warnings are enabled")
|
||||
set (H5_CFLAGS0 "${H5_CFLAGS0} -Winline -Waggregate-return -Wmissing-format-attribute -Wmissing-noreturn")
|
||||
else ()
|
||||
set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-unused-parameter -Wno-inline -Wno-aggregate-return")
|
||||
set (H5_CFLAGS0 "${H5_CFLAGS0} -Wno-inline -Wno-aggregate-return -Wno-missing-format-attribute -Wno-missing-noreturn")
|
||||
endif ()
|
||||
|
||||
# Append warning flags
|
||||
# Don't use the '-Wtraditional' flag, we're way past having K&R C code
|
||||
# set (H5_CFLAGS "${H5_CFLAGS} -Wtraditional")
|
||||
# Don't use the '-Wtraditional-conversion' flag, there's too many warnings
|
||||
# from GCC's assert macro
|
||||
# set (H5_CFLAGS "${H5_CFLAGS} -Wtraditional-conversion")
|
||||
|
||||
# Append warning flags from gcc-3* case
|
||||
# (don't use -Wpadded flag for normal builds, many of the warnings its
|
||||
# issuing can't be fixed and they are making it hard to detect other,
|
||||
# more important warnings)
|
||||
#set (H5_CFLAGS "${H5_CFLAGS} -Wfloat-equal -Wmissing-format-attribute -Wpadded")
|
||||
set (H5_CFLAGS1 "${H5_CFLAGS1} -Wfloat-equal -Wmissing-format-attribute")
|
||||
|
||||
# Append warning flags from gcc-3.2* case
|
||||
set (H5_CFLAGS1 "${H5_CFLAGS1} -Wpacked -Wdisabled-optimization")
|
||||
if (HDF5_ENABLE_DEV_WARNINGS)
|
||||
set (H5_CFLAGS1 "${H5_CFLAGS1} -Wmissing-noreturn")
|
||||
else ()
|
||||
set (H5_CFLAGS1 "${H5_CFLAGS1} -Wno-missing-noreturn")
|
||||
endif ()
|
||||
|
||||
# Enable more format checking flags, beyond the basic -Wformat included
|
||||
# in -Wall
|
||||
set (H5_CFLAGS1_5 "${H5_CFLAGS1_5} -Wformat=2")
|
||||
|
||||
# Append warning flags from gcc-3.3* case
|
||||
set (H5_CFLAGS1 "${H5_CFLAGS1} -Wendif-labels")
|
||||
|
||||
# Append warning flags from gcc-3.4* case
|
||||
set (H5_CFLAGS1 "${H5_CFLAGS1} -Wdeclaration-after-statement -Wold-style-definition -Winvalid-pch")
|
||||
|
||||
# Append more extra warning flags that only gcc4.0+ know about
|
||||
set (H5_CFLAGS2 "${H5_CFLAGS2} -Wvariadic-macros -Winit-self -Wmissing-include-dirs -Wswitch-default -Wswitch-enum -Wunused-macros")
|
||||
|
||||
# Append more extra warning flags that only gcc 4.1+ know about
|
||||
set (H5_CFLAGS2_5 "${H5_CFLAGS2_5} -Wunsafe-loop-optimizations")
|
||||
set (H5_CFLAGS2 "${H5_CFLAGS2} -Wc++-compat")
|
||||
|
||||
# Append more extra warning flags that only gcc 4.2+ know about
|
||||
set (H5_CFLAGS2_5 "${H5_CFLAGS2_5} -Wstrict-overflow")
|
||||
set (H5_CFLAGS2 "${H5_CFLAGS2} -Wno-strict-overflow")
|
||||
|
||||
# Append more extra warning flags that only gcc 4.3+ know about
|
||||
# Append warning flags that only gcc 4.3+ knows about
|
||||
#
|
||||
# Technically, variable-length arrays are part of the C99 standard, but
|
||||
# we should approach them a bit cautiously... -QAK
|
||||
set (H5_CFLAGS2 "${H5_CFLAGS2} -Wlogical-op -Wlarger-than=2048 -Wvla")
|
||||
set (H5_CFLAGS1 "${H5_CFLAGS1} -Wlogical-op -Wlarger-than=2048 -Wvla")
|
||||
|
||||
# Append more extra warning flags that only gcc 4.4+ know about
|
||||
set (H5_CFLAGS2 "${H5_CFLAGS2} -Wsync-nand -Wframe-larger-than=16384 -Wpacked-bitfield-compat")
|
||||
set (H5_CFLAGS1 "${H5_CFLAGS1} -Wsync-nand -Wframe-larger-than=16384 -Wpacked-bitfield-compat")
|
||||
|
||||
# Append more extra warning flags that only gcc 4.5+ know about
|
||||
if (NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 4.5)
|
||||
set (H5_CFLAGS2_5 "${H5_CFLAGS2_5} -Wstrict-overflow=5 -Wjump-misses-init -Wunsuffixed-float-constants")
|
||||
set (H5_CFLAGS2 "${H5_CFLAGS2} -Wjump-misses-init -Wunsuffixed-float-constants")
|
||||
set (H5_CFLAGS1 "${H5_CFLAGS1} -Wstrict-overflow=5 -Wjump-misses-init -Wunsuffixed-float-constants")
|
||||
endif ()
|
||||
|
||||
# Append more extra warning flags that only gcc 4.6+ know about
|
||||
@ -164,12 +143,6 @@ if (NOT MSVC AND CMAKE_COMPILER_IS_GNUCC)
|
||||
endif ()
|
||||
endif ()
|
||||
|
||||
# The "unreachable code" warning appears to be reliable now...
|
||||
# (this warning was removed in gcc 4.5+)
|
||||
if (NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 4.7)
|
||||
set (H5_CFLAGS2 "${H5_CFLAGS2} -Wunreachable-code")
|
||||
endif ()
|
||||
|
||||
# Append more extra warning flags that only gcc 4.7+ know about
|
||||
if (NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 4.7)
|
||||
set (H5_CFLAGS2 "${H5_CFLAGS2} -Wstack-usage=8192 -Wvector-operation-performance")
|
||||
@ -191,11 +164,9 @@ if (NOT MSVC AND CMAKE_COMPILER_IS_GNUCC)
|
||||
|
||||
# Append more extra warning flags that only gcc 4.9+ know about
|
||||
if (NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 4.9)
|
||||
set (H5_CFLAGS2 "${H5_CFLAGS2} -Wdate-time -Wopenmp-simd")
|
||||
set (H5_CFLAGS2 "${H5_CFLAGS2} -Wdate-time")
|
||||
endif ()
|
||||
|
||||
# (There was no release of gcc 5.0)
|
||||
|
||||
# Append more extra warning flags that only gcc 5.1+ know about
|
||||
if (NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 5.1)
|
||||
set (H5_CFLAGS3 "${H5_CFLAGS3} -Warray-bounds=2 -Wc99-c11-compat")
|
||||
@ -213,6 +184,7 @@ endif ()
|
||||
#-----------------------------------------------------------------------------
|
||||
option (HDF5_ENABLE_ALL_WARNINGS "Enable all warnings" OFF)
|
||||
if (HDF5_ENABLE_ALL_WARNINGS)
|
||||
message (STATUS "....All Warnings are enabled")
|
||||
if (MSVC)
|
||||
if (HDF5_ENABLE_DEV_WARNINGS)
|
||||
string (REGEX REPLACE "(^| )([/-])W[0-9]( |$)" " " CMAKE_C_FLAGS "${CMAKE_C_FLAGS}")
|
||||
@ -231,7 +203,7 @@ if (HDF5_ENABLE_ALL_WARNINGS)
|
||||
endif ()
|
||||
else ()
|
||||
if (CMAKE_COMPILER_IS_GNUCC)
|
||||
set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wextra -pedantic ${H5_CFLAGS1} ${H5_CFLAGS2}")
|
||||
set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${H5_CFLAGS0} ${H5_CFLAGS1} ${H5_CFLAGS2}")
|
||||
endif ()
|
||||
endif ()
|
||||
endif ()
|
||||
@ -241,6 +213,7 @@ endif ()
|
||||
#-----------------------------------------------------------------------------
|
||||
option (HDF5_ENABLE_GROUPZERO_WARNINGS "Enable group zero warnings" OFF)
|
||||
if (HDF5_ENABLE_GROUPZERO_WARNINGS)
|
||||
message (STATUS "....Group Zero warnings are enabled")
|
||||
if (MSVC)
|
||||
string (REGEX REPLACE "(^| )([/-])W[0-9]( |$)" " " CMAKE_C_FLAGS "${CMAKE_C_FLAGS}")
|
||||
set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /W1")
|
||||
@ -250,7 +223,7 @@ if (HDF5_ENABLE_GROUPZERO_WARNINGS)
|
||||
endif ()
|
||||
else ()
|
||||
if (CMAKE_COMPILER_IS_GNUCC)
|
||||
set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wextra -pedantic")
|
||||
set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${H5_CFLAGS0}")
|
||||
endif ()
|
||||
endif ()
|
||||
endif ()
|
||||
@ -260,6 +233,7 @@ endif ()
|
||||
#-----------------------------------------------------------------------------
|
||||
option (HDF5_ENABLE_GROUPONE_WARNINGS "Enable group one warnings" OFF)
|
||||
if (HDF5_ENABLE_GROUPONE_WARNINGS)
|
||||
message (STATUS "....Group One warnings are enabled")
|
||||
if (MSVC)
|
||||
string (REGEX REPLACE "(^| )([/-])W[0-9]( |$)" " " CMAKE_C_FLAGS "${CMAKE_C_FLAGS}")
|
||||
set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /W2")
|
||||
@ -277,6 +251,7 @@ endif ()
|
||||
#-----------------------------------------------------------------------------
|
||||
option (HDF5_ENABLE_GROUPTWO_WARNINGS "Enable group two warnings" OFF)
|
||||
if (HDF5_ENABLE_GROUPTWO_WARNINGS)
|
||||
message (STATUS "....Group Two warnings are enabled")
|
||||
if (MSVC)
|
||||
string (REGEX REPLACE "(^| )([/-])W[0-9]( |$)" " " CMAKE_C_FLAGS "${CMAKE_C_FLAGS}")
|
||||
set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /W3")
|
||||
@ -294,6 +269,7 @@ endif ()
|
||||
#-----------------------------------------------------------------------------
|
||||
option (HDF5_ENABLE_GROUPTHREE_WARNINGS "Enable group three warnings" OFF)
|
||||
if (HDF5_ENABLE_GROUPTHREE_WARNINGS)
|
||||
message (STATUS "....Group Three warnings are enabled")
|
||||
if (MSVC)
|
||||
string (REGEX REPLACE "(^| )([/-])W[0-9]( |$)" " " CMAKE_C_FLAGS "${CMAKE_C_FLAGS}")
|
||||
set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /W4")
|
||||
@ -311,6 +287,7 @@ endif ()
|
||||
#-----------------------------------------------------------------------------
|
||||
option (HDF5_ENABLE_GROUPFOUR_WARNINGS "Enable group four warnings" OFF)
|
||||
if (HDF5_ENABLE_GROUPFOUR_WARNINGS)
|
||||
message (STATUS "....Group Four warnings are enabled")
|
||||
if (NOT MSVC)
|
||||
set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${H5_CFLAGS4}")
|
||||
endif ()
|
||||
|
@ -12,6 +12,7 @@ Section IV: Further considerations
|
||||
Section V: Options for building HDF5 Libraries with CMake command line
|
||||
Section VI: CMake option defaults for HDF5
|
||||
Section VII: User Defined Options for HDF5 Libraries with CMake
|
||||
Section VIII: User Defined Compile Flags for HDF5 Libraries with CMake
|
||||
|
||||
************************************************************************
|
||||
|
||||
@ -663,6 +664,30 @@ Copy the contents of the file, both macro and option, into the
|
||||
UserMacros.cmake file. Then enable the option to the CMake configuration,
|
||||
build and test process.
|
||||
|
||||
|
||||
========================================================================
|
||||
VIII. User Defined Compile Flags for HDF5 Libraries with CMake
|
||||
========================================================================
|
||||
|
||||
Custom compiler flags can be added by defining the CMAKE_C_FLAGS and
|
||||
CMAKE_CXX_FLAGS variables.
|
||||
Using a cmake script:
|
||||
set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O2")
|
||||
Defined on the configure line:
|
||||
cmake -G "Visual Studio 12 2013" -DCMAKE_C_FLAGS:STRING=-O2 ..
|
||||
|
||||
Debug symbols are enabled with configuration selections Debug or RelWithDebInfo.
|
||||
The difference between Debug and RelWithDebInfo configurations is that
|
||||
RelWithDebInfo optimizes the code similar to Release. It produces fully optimized
|
||||
code, but also creates the symbol table and the debug metadata to give the
|
||||
debugger input to map the execution back to the original code.
|
||||
RelwithDebInfo configuration should not affect the performance when the code
|
||||
is run without a debugger attached.
|
||||
|
||||
The HDF5_ENABLE_COVERAGE option will add "-g -O0 -fprofile-arcs -ftest-coverage"
|
||||
to CMAKE_C_FLAGS.
|
||||
|
||||
|
||||
========================================================================
|
||||
For further assistance, send email to help@hdfgroup.org
|
||||
========================================================================
|
||||
|
474
release_docs/INSTALL_Warnings.txt
Normal file
474
release_docs/INSTALL_Warnings.txt
Normal file
@ -0,0 +1,474 @@
|
||||
***********************************************************************
|
||||
* COMPILER WARNINGS OPTIONS
|
||||
***********************************************************************
|
||||
|
||||
Table of Contents
|
||||
|
||||
Section I: Managing Warnings
|
||||
Section II: Default Warnings
|
||||
Section III: All Warnings
|
||||
Section IV: Group 0 Warnings
|
||||
Section V: Group 1 Warnings
|
||||
Section VI: Group 2 Warnings
|
||||
Section VII: Group 3 Warnings
|
||||
Section VIII: Group 4 Warnings
|
||||
Section IX: Disable Warnings
|
||||
|
||||
************************************************************************
|
||||
|
||||
|
||||
========================================================================
|
||||
I. Managing Warnings
|
||||
========================================================================
|
||||
Compiler warnings are managed by setting the compiler flags variables.
|
||||
|
||||
Autotools uses the H5_CFLAGS and H5_CXXFLAGS, both variables set the flags nearly
|
||||
identical, along with H5_FCFLAGS for Fortran. Autotools uses the type
|
||||
and version of the compiler to determine which warning flags are used.
|
||||
However, there is an option, enable-developer-warnings, to enable extra
|
||||
flags for developers.
|
||||
|
||||
CMake uses the CMAKE_C_FLAGS and CMAKE_CXX_FLAGS, both sets are nearly
|
||||
identical, along with CMAKE_Fortran_FLAGS for Fortran. CMake has a
|
||||
minimum set of flags for GNU type compilers and for MSVC compilers. In
|
||||
addition, CMake breaks the list of flags into groups. The groups for
|
||||
GNU are roughly associated with the version of the compiler, while
|
||||
the MSVC groups are associated with the warning levels for the
|
||||
Microsoft compilers. The CMake option for enabling extra developer
|
||||
warnings is HDF5_ENABLE_DEV_WARNINGS.
|
||||
|
||||
Custom settings can be used by setting;
|
||||
Environment variables H5_CFLAGS and H5_CXXFLAGS for Autotools
|
||||
CMake defines CMAKE_C_FLAGS and CMAKE_CXX_FLAGS for CMake
|
||||
|
||||
|
||||
========================================================================
|
||||
II. Default Warnings
|
||||
========================================================================
|
||||
|
||||
--------------------------------------------------
|
||||
Autotools UNIX warnings added to H5_CFLAGS
|
||||
--------------------------------------------------
|
||||
-std=c99
|
||||
|
||||
the following warning switches should not raise warnings by the current code
|
||||
-pedantic
|
||||
-Wall
|
||||
-Wextra
|
||||
-Wbad-function-cast
|
||||
-Wc++-compat
|
||||
-Wcast-align
|
||||
-Wcast-qual
|
||||
-Wconversion
|
||||
-Wdeclaration-after-statement
|
||||
-Wdisabled-optimization
|
||||
-Wfloat-equal
|
||||
-Wformat=2
|
||||
-Winit-self
|
||||
-Winvalid-pch
|
||||
-Wmissing-declarations
|
||||
-Wmissing-include-dirs
|
||||
-Wmissing-prototypes
|
||||
-Wnested-externs
|
||||
-Wold-style-definition
|
||||
-Wpacked
|
||||
-Wpointer-arith
|
||||
-Wredundant-decls
|
||||
-Wshadow
|
||||
-Wstrict-prototypes
|
||||
-Wswitch-default
|
||||
-Wswitch-enum
|
||||
-Wundef
|
||||
-Wunused-macros
|
||||
-Wunsafe-loop-optimizations
|
||||
-Wwrite-strings
|
||||
|
||||
enable-developer-warnings=ON
|
||||
-Winline
|
||||
-Waggregate-return
|
||||
-Wmissing-format-attribute
|
||||
-Wmissing-noreturn
|
||||
enable-developer-warnings=OFF
|
||||
-Wno-inline
|
||||
-Wno-aggregate-return
|
||||
-Wno-missing-format-attribute
|
||||
-Wno-missing-noreturn
|
||||
|
||||
IF GCC <= 4.3
|
||||
-Wno-long-long
|
||||
-Wvolatile-register-var
|
||||
-Wstrict-overflow
|
||||
|
||||
IF GCC <= 4.4
|
||||
-Wno-long-long
|
||||
-Wvolatile-register-var
|
||||
-Wstrict-overflow
|
||||
-Wlogical-op
|
||||
-Wvla
|
||||
|
||||
IF GCC <= 4.5
|
||||
-Wno-long-long
|
||||
-Wvolatile-register-var
|
||||
-Wstrict-overflow
|
||||
-Wlogical-op
|
||||
-Wvla
|
||||
-Wlarger-than=2048
|
||||
-Wsync-nand
|
||||
-Wframe-larger-than=16384
|
||||
-Wpacked-bitfield-compat
|
||||
|
||||
IF GCC <= 4.6
|
||||
-Wno-long-long
|
||||
-Wlogical-op
|
||||
-Wvla
|
||||
-Wlarger-than=2048
|
||||
-Wsync-nand
|
||||
-Wframe-larger-than=16384
|
||||
-Wpacked-bitfield-compat
|
||||
-Wstrict-aliasing
|
||||
-Wstrict-overflow=5
|
||||
-Wjump-misses-init
|
||||
-Wunsuffixed-float-constants
|
||||
|
||||
IF GCC <= 4.7
|
||||
-Wno-long-long
|
||||
-Wlogical-op
|
||||
-Wvla
|
||||
-Wlarger-than=2048
|
||||
-Wsync-nand
|
||||
-Wframe-larger-than=16384
|
||||
-Wpacked-bitfield-compat
|
||||
-Wstrict-aliasing
|
||||
-Wstrict-overflow=5
|
||||
-Wjump-misses-init
|
||||
-Wunsuffixed-float-constants
|
||||
-Wdouble-promotion
|
||||
-Wtrampolines
|
||||
enable-developer-warnings=ON:
|
||||
-Wsuggest-attribute=const
|
||||
enable-developer-warnings=OFF:
|
||||
-Wno-suggest-attribute=const
|
||||
|
||||
IF GCC <= 4.8
|
||||
-Wlogical-op
|
||||
-Wvla
|
||||
-Wlarger-than=2048
|
||||
-Wsync-nand
|
||||
-Wframe-larger-than=16384
|
||||
-Wpacked-bitfield-compat
|
||||
-Wstrict-overflow=5
|
||||
-Wjump-misses-init
|
||||
-Wunsuffixed-float-constants
|
||||
-Wdouble-promotion
|
||||
-Wtrampolines
|
||||
-Wstack-usage=8192
|
||||
-Wvector-operation-performance
|
||||
enable-developer-warnings=ON:
|
||||
-Wsuggest-attribute=const
|
||||
-Wsuggest-attribute=pure
|
||||
-Wsuggest-attribute=noreturn
|
||||
enable-developer-warnings=OFF:
|
||||
-Wno-suggest-attribute=const
|
||||
-Wno-suggest-attribute=pure
|
||||
-Wno-suggest-attribute=noreturn
|
||||
|
||||
IF GCC <= 4.9
|
||||
-Wlogical-op
|
||||
-Wvla
|
||||
-Wlarger-than=2048
|
||||
-Wsync-nand
|
||||
-Wframe-larger-than=16384
|
||||
-Wpacked-bitfield-compat
|
||||
-Wstrict-overflow=5
|
||||
-Wjump-misses-init
|
||||
-Wdouble-promotion
|
||||
-Wtrampolines
|
||||
-Wstack-usage=8192
|
||||
-Wvector-operation-performance
|
||||
enable-developer-warnings=ON:
|
||||
-Wsuggest-attribute=const
|
||||
-Wsuggest-attribute=pure
|
||||
-Wsuggest-attribute=noreturn
|
||||
-Wsuggest-attribute=format
|
||||
enable-developer-warnings=OFF:
|
||||
-Wno-suggest-attribute=const
|
||||
-Wno-suggest-attribute=pure
|
||||
-Wno-suggest-attribute=noreturn
|
||||
-Wno-suggest-attribute=format
|
||||
|
||||
IF GCC < 5
|
||||
-Wlogical-op
|
||||
-Wvla
|
||||
-Wlarger-than=2048
|
||||
-Wsync-nand
|
||||
-Wframe-larger-than=16384
|
||||
-Wpacked-bitfield-compat
|
||||
-Wstrict-overflow=5
|
||||
-Wjump-misses-init
|
||||
-Wunsuffixed-float-constants
|
||||
-Wdouble-promotion
|
||||
-Wtrampolines
|
||||
-Wstack-usage=8192
|
||||
-Wvector-operation-performance
|
||||
-Wdate-time
|
||||
enable-developer-warnings=ON:
|
||||
-Wsuggest-attribute=const
|
||||
-Wsuggest-attribute=pure
|
||||
-Wsuggest-attribute=noreturn
|
||||
-Wsuggest-attribute=format
|
||||
enable-developer-warnings=OFF:
|
||||
-Wno-suggest-attribute=const
|
||||
-Wno-suggest-attribute=pure
|
||||
-Wno-suggest-attribute=noreturn
|
||||
-Wno-suggest-attribute=format
|
||||
|
||||
IF GCC < 6
|
||||
-Wlogical-op
|
||||
-Wvla
|
||||
-Wlarger-than=2048
|
||||
-Wsync-nand
|
||||
-Wframe-larger-than=16384
|
||||
-Wpacked-bitfield-compat
|
||||
-Wstrict-overflow=5
|
||||
-Wjump-misses-init
|
||||
-Wunsuffixed-float-constants
|
||||
-Wdouble-promotion
|
||||
-Wtrampolines
|
||||
-Wstack-usage=8192
|
||||
-Wvector-operation-performance
|
||||
-Wdate-time
|
||||
-Warray-bounds=2
|
||||
-Wc99-c11-compat
|
||||
enable-developer-warnings=ON:
|
||||
-Wsuggest-attribute=const
|
||||
-Wsuggest-attribute=pure
|
||||
-Wsuggest-attribute=noreturn
|
||||
-Wsuggest-attribute=format
|
||||
enable-developer-warnings=OFF:
|
||||
-Wno-suggest-attribute=const
|
||||
-Wno-suggest-attribute=pure
|
||||
-Wno-suggest-attribute=noreturn
|
||||
-Wno-suggest-attribute=format
|
||||
|
||||
IF GCC < 7
|
||||
-Wlogical-op
|
||||
-Wvla
|
||||
-Wlarger-than=2048
|
||||
-Wsync-nand
|
||||
-Wframe-larger-than=16384
|
||||
-Wpacked-bitfield-compat
|
||||
-Wstrict-overflow=5
|
||||
-Wjump-misses-init
|
||||
-Wunsuffixed-float-constants
|
||||
-Wdouble-promotion
|
||||
-Wtrampolines
|
||||
-Wstack-usage=8192
|
||||
-Wvector-operation-performance
|
||||
-Wdate-time
|
||||
-Warray-bounds=2
|
||||
-Wc99-c11-compat
|
||||
-Wnull-dereference
|
||||
-Wunused-const-variable
|
||||
-Wduplicated-cond -Whsa
|
||||
enable-developer-warnings=ON:
|
||||
-Wsuggest-attribute=const
|
||||
-Wsuggest-attribute=pure
|
||||
-Wsuggest-attribute=noreturn
|
||||
-Wsuggest-attribute=format
|
||||
enable-developer-warnings=OFF:
|
||||
-Wno-suggest-attribute=const
|
||||
-Wno-suggest-attribute=pure
|
||||
-Wno-suggest-attribute=noreturn
|
||||
-Wno-suggest-attribute=format
|
||||
|
||||
|
||||
--------------------------------------------
|
||||
CMake warnings added to CMAKE_C_FLAGS
|
||||
--------------------------------------------
|
||||
|
||||
IF GNU GCC
|
||||
-pedantic
|
||||
-Wall
|
||||
-Wextra
|
||||
-Wbad-function-cast
|
||||
-Wc++-compat
|
||||
-Wcast-align
|
||||
-Wcast-qual
|
||||
-Wconversion
|
||||
-Wdeclaration-after-statement
|
||||
-Wdisabled-optimization
|
||||
-Wfloat-equal
|
||||
-Wformat=2
|
||||
-Winit-self
|
||||
-Winvalid-pch
|
||||
-Wmissing-declarations
|
||||
-Wmissing-include-dirs
|
||||
-Wmissing-prototypes
|
||||
-Wnested-externs
|
||||
-Wold-style-definition
|
||||
-Wpacked
|
||||
-Wpointer-arith
|
||||
-Wredundant-decls
|
||||
-Wshadow
|
||||
-Wstrict-prototypes
|
||||
-Wswitch-default
|
||||
-Wswitch-enum
|
||||
-Wundef
|
||||
-Wunused-macros
|
||||
-Wunsafe-loop-optimizations
|
||||
-Wwrite-strings
|
||||
|
||||
-fmessage-length=0
|
||||
HDF5_ENABLE_DEV_WARNINGS=ON
|
||||
-Winline
|
||||
-Waggregate-return
|
||||
HDF5_ENABLE_DEV_WARNINGS=OFF
|
||||
-Wno-unused-parameter
|
||||
-Wno-inline
|
||||
-Wno-aggregate-return
|
||||
|
||||
|
||||
========================================================================
|
||||
III. All Warnings in CMake
|
||||
========================================================================
|
||||
|
||||
Default: HDF5_ENABLE_DEV_WARNINGS:BOOL=OFF
|
||||
For Visual Studio:
|
||||
/W3
|
||||
|
||||
HDF5_ENABLE_ALL_WARNINGS:BOOL=ON
|
||||
For Visual Studio:
|
||||
/Wall
|
||||
/wd4668
|
||||
|
||||
For GNU GCC
|
||||
Group 0 flags
|
||||
Group 1 flags
|
||||
Group 2 flags
|
||||
|
||||
|
||||
========================================================================
|
||||
IV. Group 0 Warnings in CMake
|
||||
========================================================================
|
||||
|
||||
Default: HDF5_ENABLE_GROUPZERO_WARNINGS:BOOL=OFF
|
||||
|
||||
HDF5_ENABLE_GROUPZERO_WARNINGS:BOOL=ON
|
||||
For Visual Studio
|
||||
/W1
|
||||
|
||||
For GNU GCC
|
||||
Default Warnings
|
||||
|
||||
|
||||
========================================================================
|
||||
V. Group 1 Warnings in CMake
|
||||
========================================================================
|
||||
|
||||
Default: HDF5_ENABLE_GROUPONE_WARNINGS:BOOL=OFF
|
||||
|
||||
HDF5_ENABLE_GROUPONE_WARNINGS:BOOL=ON
|
||||
For Visual Studio
|
||||
/W2
|
||||
|
||||
For GNU GCC
|
||||
IF GCC >= 4.3
|
||||
-Wlogical-op
|
||||
-Wvla
|
||||
-Wlarger-than=2048
|
||||
IF GCC >= 4.4
|
||||
-Wsync-nand
|
||||
-Wframe-larger-than=16384
|
||||
-Wpacked-bitfield-compat
|
||||
IF GCC >= 4.5
|
||||
-Wstrict-overflow=5
|
||||
-Wjump-misses-init
|
||||
-Wunsuffixed-float-constants
|
||||
|
||||
|
||||
========================================================================
|
||||
VI. Group 2 Warnings in CMake
|
||||
========================================================================
|
||||
|
||||
Default: HDF5_ENABLE_GROUPTWO_WARNINGS:BOOL=OFF
|
||||
|
||||
HDF5_ENABLE_GROUPTWO_WARNINGS:BOOL=ON
|
||||
For Visual Studio
|
||||
/W3
|
||||
|
||||
For GNU GCC
|
||||
IF GCC >= 4.6
|
||||
-Wdouble-promotion
|
||||
-Wtrampolines
|
||||
enable-developer-warnings=ON:
|
||||
-Wsuggest-attribute=const
|
||||
enable-developer-warnings=OFF:
|
||||
-Wno-suggest-attribute=const
|
||||
IF GCC >= 4.7
|
||||
-Wstack-usage=8192
|
||||
-Wvector-operation-performance
|
||||
enable-developer-warnings=ON:
|
||||
-Wsuggest-attribute=pure
|
||||
-Wsuggest-attribute=noreturn
|
||||
enable-developer-warnings=OFF:
|
||||
-Wno-suggest-attribute=pure
|
||||
-Wno-suggest-attribute=noreturn
|
||||
IF GCC >= 4.8
|
||||
enable-developer-warnings=ON:
|
||||
-Wsuggest-attribute=format
|
||||
enable-developer-warnings=OFF:
|
||||
-Wno-suggest-attribute=format
|
||||
IF GCC >= 4.8
|
||||
-Wdate-time
|
||||
|
||||
|
||||
========================================================================
|
||||
VII. Group 3 Warnings in CMake
|
||||
========================================================================
|
||||
|
||||
Default: HDF5_ENABLE_GROUPTHREE_WARNINGS:BOOL=OFF
|
||||
|
||||
HDF5_ENABLE_GROUPTHREE_WARNINGS:BOOL=ON
|
||||
For Visual Studio
|
||||
/W4
|
||||
|
||||
For GNU GCC
|
||||
IF GCC >= 5.1
|
||||
-Warray-bounds=2
|
||||
-Wc99-c11-compat
|
||||
|
||||
|
||||
========================================================================
|
||||
VIII. Group 4 Warnings in CMake
|
||||
========================================================================
|
||||
|
||||
Default: HDF5_ENABLE_GROUPFOUR_WARNINGS:BOOL=OFF
|
||||
|
||||
HDF5_ENABLE_GROUPFOUR_WARNINGS:BOOL=ON
|
||||
For GNU GCC
|
||||
IF GCC >= 6.0
|
||||
-Wnull-dereference
|
||||
-Wunused-const-variable
|
||||
-Wduplicated-cond
|
||||
-Whsa
|
||||
|
||||
|
||||
========================================================================
|
||||
IX. Disable Warnings in CMake
|
||||
========================================================================
|
||||
|
||||
Default: HDF5_DISABLE_COMPILER_WARNINGS:BOOL=OFF
|
||||
|
||||
HDF5_DISABLE_COMPILER_WARNINGS:BOOL=ON
|
||||
For Visual Studio
|
||||
HDF5_WARNINGS_BLOCKED:BOOL=ON
|
||||
/W0
|
||||
|
||||
For GNU GCC
|
||||
-w
|
||||
|
||||
|
||||
========================================================================
|
||||
For further assistance, send email to help@hdfgroup.org
|
||||
========================================================================
|
||||
|
Loading…
Reference in New Issue
Block a user