diff options
author | jhendersonHDF <jhenderson@hdfgroup.org> | 2023-07-27 19:11:46 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-07-27 19:11:46 (GMT) |
commit | 2bb4c909c4c63cf87d10c494cd76d57092d45335 (patch) | |
tree | e5da9e282045d3b17921169e00bb4164aa31bedc /config | |
parent | 17a5a1a37ccc851ca9123b2921fbae15c4814edf (diff) | |
download | hdf5-2bb4c909c4c63cf87d10c494cd76d57092d45335.zip hdf5-2bb4c909c4c63cf87d10c494cd76d57092d45335.tar.gz hdf5-2bb4c909c4c63cf87d10c494cd76d57092d45335.tar.bz2 |
Fix some warnings in developer builds (#3247) (#3291)
* Fix some warnings in developer builds
* Switch approach to Winline flag
Diffstat (limited to 'config')
-rw-r--r-- | config/cmake/HDFCompilerFlags.cmake | 13 | ||||
-rw-r--r-- | config/gnu-warnings/developer-general | 9 | ||||
-rw-r--r-- | config/intel-warnings/developer-general | 9 |
3 files changed, 29 insertions, 2 deletions
diff --git a/config/cmake/HDFCompilerFlags.cmake b/config/cmake/HDFCompilerFlags.cmake index 00850d3..1878b9b 100644 --- a/config/cmake/HDFCompilerFlags.cmake +++ b/config/cmake/HDFCompilerFlags.cmake @@ -189,6 +189,19 @@ if (HDF5_ENABLE_DEV_WARNINGS) elseif (CMAKE_C_COMPILER_ID MATCHES "IntelLLVM" OR CMAKE_C_COMPILER_ID MATCHES "[Cc]lang") ADD_H5_FLAGS (H5_CFLAGS "${HDF5_SOURCE_DIR}/config/clang-warnings/developer-general") endif () + + # Turn on -Winline warnings now only for non-Debug and + # non-Developer builds. For at least GNU compilers this + # flag appears to conflict specifically with the -Og + # optimization flag and will produce warnings about functions + # not being considered for inlining + if (NOT ${HDF_CFG_NAME} MATCHES "Debug" AND NOT ${HDF_CFG_NAME} MATCHES "Developer") + if (CMAKE_C_COMPILER_ID STREQUAL "GNU") + list (APPEND H5_CFLAGS "-Winline") + elseif (CMAKE_C_COMPILER_ID STREQUAL "Intel" AND NOT _INTEL_WINDOWS) + list (APPEND H5_CFLAGS "-Winline") + endif () + endif () else () if (CMAKE_C_COMPILER_ID STREQUAL "GNU" AND CMAKE_C_COMPILER_VERSION VERSION_GREATER_EQUAL 4.8) ADD_H5_FLAGS (H5_CFLAGS "${HDF5_SOURCE_DIR}/config/gnu-warnings/no-developer-general") diff --git a/config/gnu-warnings/developer-general b/config/gnu-warnings/developer-general index 460b874..79ecd6a 100644 --- a/config/gnu-warnings/developer-general +++ b/config/gnu-warnings/developer-general @@ -1,10 +1,17 @@ # (suggestions from gcc, not code problems) -Waggregate-return -Wdisabled-optimization --Winline -Wmissing-format-attribute -Wmissing-noreturn -Wswitch-default -Wswitch-enum -Wunsafe-loop-optimizations -Wunused-macros +# -Winline warnings aren't included here because, for at least +# GNU compilers, this flag appears to conflict specifically with +# the -Og optimization level flag added for Debug and Developer +# builds and will produce warnings about functions not being +# considered for inlining. The flag will be added to the list +# of compiler flags separately if developer warnings are enabled +# and the build type is not Debug or Developer +#-Winline diff --git a/config/intel-warnings/developer-general b/config/intel-warnings/developer-general index fae56f0..861218e 100644 --- a/config/intel-warnings/developer-general +++ b/config/intel-warnings/developer-general @@ -1,4 +1,11 @@ --Winline -Wreorder -Wport -Wstrict-aliasing +# -Winline warnings aren't included here because, for at least +# GNU compilers, this flag appears to conflict specifically with +# the -Og optimization level flag added for Debug and Developer +# builds and will produce warnings about functions not being +# considered for inlining. The flag will be added to the list +# of compiler flags separately if developer warnings are enabled +# and the build type is not Debug or Developer +#-Winline |