diff options
author | kmu <kmu@hdfgroup.org> | 2019-12-09 15:18:56 (GMT) |
---|---|---|
committer | kmu <kmu@hdfgroup.org> | 2019-12-09 15:18:56 (GMT) |
commit | 8b51394f3841012f3c06bf380082a83f66a68168 (patch) | |
tree | cfb41461a5f1f9bc14e8f3118ce541e1997aa485 /config | |
parent | 189935ff260cae6fb4e061fa68bd7b93e219c635 (diff) | |
parent | 1f871e23b7c3fdec925004f2cd39d3a2cdd8decb (diff) | |
download | hdf5-8b51394f3841012f3c06bf380082a83f66a68168.zip hdf5-8b51394f3841012f3c06bf380082a83f66a68168.tar.gz hdf5-8b51394f3841012f3c06bf380082a83f66a68168.tar.bz2 |
Merge branch 'develop' into bugfix/intel_warnings
Diffstat (limited to 'config')
-rw-r--r-- | config/cmake/HDFCompilerFlags.cmake | 2 | ||||
-rw-r--r-- | config/commence.am | 2 | ||||
-rw-r--r-- | config/gnu-flags | 101 |
3 files changed, 16 insertions, 89 deletions
diff --git a/config/cmake/HDFCompilerFlags.cmake b/config/cmake/HDFCompilerFlags.cmake index adace89..f49b674 100644 --- a/config/cmake/HDFCompilerFlags.cmake +++ b/config/cmake/HDFCompilerFlags.cmake @@ -107,7 +107,7 @@ if (NOT MSVC AND CMAKE_COMPILER_IS_GNUCC) endif() elseif (CMAKE_C_COMPILER_ID STREQUAL "GNU") 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} -Wbad-function-cast -Wno-c++-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") diff --git a/config/commence.am b/config/commence.am index 830c494..a16eee5 100644 --- a/config/commence.am +++ b/config/commence.am @@ -70,7 +70,7 @@ H5CPP=${DESTDIR}$(bindir)/h5c++ # instead of CFLAGS, as CFLAGS is reserved solely for the user to define. # This applies to FCFLAGS, CXXFLAGS, CPPFLAGS, and LDFLAGS as well. -AM_CFLAGS=@AM_CFLAGS@ @H5_CFLAGS@ @H5_ECFLAGS@ +AM_CFLAGS=@AM_CFLAGS@ @H5_CFLAGS@ AM_FCFLAGS=@AM_FCFLAGS@ @H5_FCFLAGS@ AM_CXXFLAGS=@AM_CXXFLAGS@ @H5_CXXFLAGS@ AM_CPPFLAGS=@AM_CPPFLAGS@ @H5_CPPFLAGS@ diff --git a/config/gnu-flags b/config/gnu-flags index bc120a8..16795d0 100644 --- a/config/gnu-flags +++ b/config/gnu-flags @@ -168,44 +168,15 @@ if test "X-gcc" = "X-$cc_vendor"; then # NOTE: Disable the -Wformat-nonliteral from -Wformat=2 here and re-add # it to the developer flags. # - H5_CFLAGS="$H5_CFLAGS -pedantic -Wall -Wextra" - H5_ECFLAGS="$H5_ECFLAGS -Werror=bad-function-cast" - H5_ECFLAGS="$H5_ECFLAGS -Werror=cast-align" - H5_CFLAGS="$H5_CFLAGS -Wcast-qual -Wconversion" - H5_ECFLAGS="$H5_ECFLAGS -Werror=declaration-after-statement" - DEVELOPER_WARNING_CFLAGS="$DEVELOPER_WARNING_CFLAGS -Wdisabled-optimization" - H5_CFLAGS="$H5_CFLAGS -Wfloat-equal" - H5_CFLAGS="$H5_CFLAGS -Wformat=2 -Wno-format-nonliteral -Winit-self -Winvalid-pch" - H5_ECFLAGS="$H5_ECFLAGS -Werror=missing-declarations" - H5_CFLAGS="$H5_CFLAGS -Wmissing-include-dirs" - H5_ECFLAGS="$H5_ECFLAGS -Werror=missing-prototypes" - H5_ECFLAGS="$H5_ECFLAGS -Werror=nested-externs" - H5_ECFLAGS="$H5_ECFLAGS -Werror=old-style-definition" - H5_ECFLAGS="$H5_ECFLAGS -Werror=packed" - H5_ECFLAGS="$H5_ECFLAGS -Werror=redundant-decls" - H5_ECFLAGS="$H5_ECFLAGS -Werror=shadow" - H5_ECFLAGS="$H5_ECFLAGS -Werror=strict-prototypes" - DEVELOPER_WARNING_CFLAGS="$DEVELOPER_WARNING_CFLAGS -Wswitch-default" - DEVELOPER_WARNING_CFLAGS="$DEVELOPER_WARNING_CFLAGS -Wswitch-enum" - H5_CFLAGS="$H5_CFLAGS -Wundef" - DEVELOPER_WARNING_CFLAGS="$DEVELOPER_WARNING_CFLAGS -Wunused-macros" - DEVELOPER_WARNING_CFLAGS="$DEVELOPER_WARNING_CFLAGS -Wunsafe-loop-optimizations" - H5_CFLAGS="$H5_CFLAGS -Wwrite-strings" - - # - # HDF5 code should not trigger the following warnings under any - # circumstances, so ask the compiler to treat them as errors: - # -# H5_ECFLAGS="$H5_ECFLAGS -Werror=discarded-qualifiers" - H5_ECFLAGS="$H5_ECFLAGS -Werror=implicit-function-declaration" - H5_CFLAGS="$H5_CFLAGS -Wmaybe-uninitialized" - H5_ECFLAGS="$H5_ECFLAGS -Werror=pointer-sign" - H5_ECFLAGS="$H5_ECFLAGS -Werror=pointer-to-int-cast" - H5_ECFLAGS="$H5_ECFLAGS -Werror=switch" - H5_ECFLAGS="$H5_ECFLAGS -Werror=unused-but-set-variable" - H5_ECFLAGS="$H5_ECFLAGS -Werror=unused-function" - H5_ECFLAGS="$H5_ECFLAGS -Werror=unused-parameter" - H5_ECFLAGS="$H5_ECFLAGS -Werror=unused-variable" + # NOTE: Due to the divergence in the C and C++, we're dropping support for + # compiling the C library with a C++ compiler and dropping the -Wc++-compat + # warning. + H5_CFLAGS="$H5_CFLAGS -pedantic -Wall -Wextra -Wbad-function-cast -Wno-c++-compat -Wcast-align" + H5_CFLAGS="$H5_CFLAGS -Wcast-qual -Wconversion -Wdeclaration-after-statement -Wdisabled-optimization -Wfloat-equal" + H5_CFLAGS="$H5_CFLAGS -Wformat=2 -Wno-format-nonliteral -Winit-self -Winvalid-pch -Wmissing-declarations -Wmissing-include-dirs" + H5_CFLAGS="$H5_CFLAGS -Wmissing-prototypes -Wnested-externs -Wold-style-definition -Wpacked" + H5_CFLAGS="$H5_CFLAGS -Wredundant-decls -Wshadow -Wstrict-prototypes -Wswitch-enum -Wswitch-default" + H5_CFLAGS="$H5_CFLAGS -Wundef -Wunused-macros -Wunsafe-loop-optimizations -Wwrite-strings" ###################### # Developer warnings # @@ -254,34 +225,17 @@ if test "X-gcc" = "X-$cc_vendor"; then # gcc 4.3 if test $cc_vers_major -ge 5 -o $cc_vers_major -eq 4 -a $cc_vers_minor -ge 3; then - H5_CFLAGS="$H5_CFLAGS -Wlogical-op" - # - # Lots of noise, questionable benefit: - # - DEVELOPER_WARNING_CFLAGS="$DEVELOPER_WARNING_CFLAGS -Wlarger-than=2560" - # + H5_CFLAGS="$H5_CFLAGS -Wlogical-op -Wlarger-than=2560" fi # gcc 4.4 if test $cc_vers_major -ge 5 -o $cc_vers_major -eq 4 -a $cc_vers_minor -ge 4; then - H5_CFLAGS="$H5_CFLAGS -Wsync-nand -Wpacked-bitfield-compat" - # - # Lots of noise, questionable benefit: - # - DEVELOPER_WARNING_CFLAGS="$DEVELOPER_WARNING_CFLAGS -Wframe-larger-than=16384" - # + H5_CFLAGS="$H5_CFLAGS -Wsync-nand -Wframe-larger-than=16384 -Wpacked-bitfield-compat" fi # gcc 4.5 if test $cc_vers_major -ge 5 -o $cc_vers_major -eq 4 -a $cc_vers_minor -ge 5; then - H5_CFLAGS="$H5_CFLAGS -Wstrict-overflow=5 -Wunsuffixed-float-constants" - # - # -Wjump-misses-init makes lots of noise for a questionable benefit. - # Can jumping over an initialization in C cause any harm, if - # the variable is never *used* before it has been initialized? - # - DEVELOPER_WARNING_CFLAGS="$DEVELOPER_WARNING_CFLAGS -Wjump-misses-init" - # + H5_CFLAGS="$H5_CFLAGS -Wstrict-overflow=5 -Wjump-misses-init -Wunsuffixed-float-constants" fi # gcc 4.6 @@ -293,17 +247,7 @@ if test "X-gcc" = "X-$cc_vendor"; then # gcc 4.7 if test $cc_vers_major -ge 5 -o $cc_vers_major -eq 4 -a $cc_vers_minor -ge 7; then - # - # It's not clear that -Wvector-operation-performance warnings are - # actionable. - # - # -Wstack-usage=8192 warnings need better justification; - # if justifiable, should be enabled on a branch and swept up there - # before burdening the whole development team. - # - DEVELOPER_WARNING_CFLAGS="$DEVELOPER_WARNING_CFLAGS -Wstack-usage=8192" - DEVELOPER_WARNING_CFLAGS="$DEVELOPER_WARNING_CFLAGS -Wvector-operation-performance" - + H5_CFLAGS="$H5_CFLAGS -Wstack-usage=8192 -Wvector-operation-performance" DEVELOPER_WARNING_CFLAGS="$DEVELOPER_WARNING_CFLAGS -Wsuggest-attribute=pure -Wsuggest-attribute=noreturn" NO_DEVELOPER_WARNING_CFLAGS="$NO_DEVELOPER_WARNING_CFLAGS -Wno-suggest-attribute=pure -Wno-suggest-attribute=noreturn" fi @@ -322,21 +266,11 @@ if test "X-gcc" = "X-$cc_vendor"; then # gcc 5 if test $cc_vers_major -ge 5; then H5_CFLAGS="$H5_CFLAGS -Warray-bounds=2 -Wc99-c11-compat" - H5_ECFLAGS="$H5_ECFLAGS -Werror=incompatible-pointer-types" fi # gcc 6 if test $cc_vers_major -ge 6; then - H5_CFLAGS="$H5_CFLAGS -Wunused-const-variable -Whsa -Wnormalized" - # - # Unacceptably noisy on HDF5 right now. - # - DEVELOPER_WARNING_CFLAGS="$DEVELOPER_WARNING_CFLAGS -Wnull-dereference" - # - # Careful! -Wduplicated-cond, combined with HDF5's heavy use of - # macros, can make a lot of noise. - # - DEVELOPER_WARNING_CFLAGS="$DEVELOPER_WARNING_CFLAGS -Wduplicated-cond" + H5_CFLAGS="$H5_CFLAGS -Wnull-dereference -Wunused-const-variable -Wduplicated-cond -Whsa -Wnormalized" fi # gcc 7 @@ -347,13 +281,6 @@ if test "X-gcc" = "X-$cc_vendor"; then # gcc 8 if test $cc_vers_major -ge 8; then - # For GCC 8, promote maybe-initialized warnings to an error. GCC 8 - # reports 0 maybe-uninitialized warnings where earlier versions - # make many false reports. GCC 8 seems to analyze calls to static - # in order to detect initializations that occur there. It's possible - # that GCC 8 only performs that analysis at -O3, though. - H5_ECFLAGS="$H5_ECFLAGS -Werror=maybe-uninitialized" - H5_ECFLAGS="$H5_ECFLAGS -Werror=cast-function-type" DEVELOPER_WARNING_CFLAGS="$DEVELOPER_WARNING_CFLAGS -Wstringop-overflow=4 -Wsuggest-attribute=cold -Wsuggest-attribute=malloc" NO_DEVELOPER_WARNING_CFLAGS="$NO_DEVELOPER_WARNING_CFLAGS -Wno-suggest-attribute=cold -Wno-suggest-attribute=malloc" H5_CFLAGS="$H5_CFLAGS -Wattribute-alias -Wcast-align=strict -Wshift-overflow=2" |