Skip to content

Commit

Permalink
Merge PR #755 fix warnings files to Hdf5 1 12 1 (#757)
Browse files Browse the repository at this point in the history
* Hdf5 1 12 doxygen version correction (#658)

* OESS-98 fix tools test for plugins

* sync fork

* Merge of changes from dev

* Move problem option to bottom of the list until fixed

* HDFFV-11106 - fix parsing optional args

* HDFFV-11106 add note

* grammer fix

* Whitespace after clang formatting

* Undo format version 11 changes

* Update check to working version

* Merge workflow and minor changes from develop

* Update supported platforms

* PR#3 merge from develop

* Merge gcc 10 diagnostics option from develop

* Merge #318 OSX changes from develop

* Merge serval small changes from dev

* fix typo

* Minor non-space formatting changes

* GH #386 copyright corrections for java folder

* revert because logic requires false return

* Merges from develop

* Remove case statement for H5I_EVENTSET

* Correct call with versioning

* Remove tabs

* Double underscore change

* Merges from develop

Remove more underscores from header guards

* Merge #380 from develop

* Correct date entry

* Split format source and commit changes on repo push

* remove pre-split setting

* Change windows TS to use older VS.

* HDFFV-11212 JNI export util and Javadoc

* Suggested review changes

* Another change found

* Committing clang-format changes

* Some Javadoc warning fixes

* Committing clang-format changes

* Updated javadoc fixes

* HDFFV-11228/9 merges from develop

* remove obsolete debug comment

* Fix conflict

* HDFFV-11229 merge changes from develop

* HDFFV-11229 merge second compare from develop

* HDFFV-11229 fix reference file

* HDFFV-11229 update autotools test script for two ref files

* HDFFV-11229 merge dev changes for long double display in tools

* Committing clang-format changes

* Update with changes from develop

* Add "option" command for clang options

* Rework CMake add_custom to use the BYPRODUCTS argument

Update pkgconfig scripts for parallel builds.
Fix install COPYING file reference.
Remove unused round defines.
Change CMake default setting of BUILD_CPP to off.

* Whitespace changes

* Rework CMake add_custom to use the BYPRODUCTS argument

* Revert CMake configure checks for round defines

* With VS 2015 minimum strdup is supported

* Doxygen comments merged from develop

* doxygen build updates

* Correct version string for map functions

* TRILAB-227 and tools debug merge from develop

* TRILAB-227 Enable test

* Quote subset args

* Use MATCHES in compiler id compare, merge from dev

* Revert test enable

* Add file to list

* doxygen version errors

* if blocks needed for build modes

* Update list of test platforms

Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>

* Attempt format uniformity in RELEASE.txt.

* BUG: DataSet assignment operator is missing (#503)

* BUG: DataSet assignment operator is missing

* Some compilers complain if the copy constructor is given explicitly
  but the assignment operator is implicitly set to default.

* Explicitly defining the assignment operator allows us to properly
  handle reference counters for shared resources.

* BUG: DataSet assignment operator is missing.

* Mimicking code of H5DataType::operator() as suggested by @bmribler.

* Added test

Description:
    Added test for DataSet::operator= that Leengit added
Platform tested:
    Linux/64 (jelly)

* Removed Author field.

* Commit clang format changes.

* Entry for Leengit's github PR #503

* Removed lines left by mistake

Co-authored-by: Binh-Minh Ribler <bmribler@hdfgroup.org>
Co-authored-by: Larry Knox <lrknox@hdfgroup.org>

* Add H5Dchunk_iter method for iterating over chunks (#6)

* Add H5Dchunk_iter method for iterating over chunks

This method iterates over all chunks in dataset, calling a user-supplied
callback with the chunk information and optional user supplied data.

The iterator is stopped when ITER_STOP is returned by the user-supplied
callback or the iterator is exhausted.

Existing methods to get chunk_info performs an iteration each time, so
to get many or all chunks causes SUM(i) for i = 0 -> N operations for N
chunks, as opposed to N operations when using this iterator for this use case.

* H5Dchunk_iter: test iterating all chunks, some chunks and failing iteration.

* H5D: move H5Dchunk_iter private methods to specific

* trace: add H5D_chunk_iter_op_t and trace H5D.c

* chunks-iter: document chunk_iter

* chunk-iter: chunk add FUNC_ENTER/FUNC_LEAVE macros

* Committing clang-format changes

Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>

* Set initial doxygen version for H5Dchunk_iter().

* Revert "Set initial doxygen version for H5Dchunk_iter()."

This reverts commit d739e46.

* Revert "Add H5Dchunk_iter method for iterating over chunks (#6)"

This reverts commit 53e1139.

* Add flushrefresh errors with check-passthrough-vol to known problems in
RELEASE.txt.

* Minor RELEASE.txt updates.

* Hdf5 1 12 Remove version from pkgcfg file names (#672)

* OESS-98 fix tools test for plugins

* sync fork

* Merge of changes from dev

* Move problem option to bottom of the list until fixed

* HDFFV-11106 - fix parsing optional args

* HDFFV-11106 add note

* grammer fix

* Whitespace after clang formatting

* Undo format version 11 changes

* Update check to working version

* Merge workflow and minor changes from develop

* Update supported platforms

* PR#3 merge from develop

* Merge gcc 10 diagnostics option from develop

* Merge #318 OSX changes from develop

* Merge serval small changes from dev

* fix typo

* Minor non-space formatting changes

* GH #386 copyright corrections for java folder

* revert because logic requires false return

* Merges from develop

#358 patches from vtk
#361 fix header guard spelling

* Remove case statement for H5I_EVENTSET

* Correct call with versioning

* Remove tabs

* Double underscore change

* Merges from develop

#340 clang -Wformat-security warnings
#360 Fixed uninitialized warnings
Remove more underscores from header guards

* Merge #380 from develop

* Correct date entry

* Split format source and commit changes on repo push

* remove pre-split setting

* Change windows TS to use older VS.

* HDFFV-11212 JNI export util and Javadoc

* Suggested review changes

* Another change found

* Committing clang-format changes

* Some Javadoc warning fixes

* Committing clang-format changes

* Updated javadoc fixes

* HDFFV-11228/9 merges from develop

* remove obsolete debug comment

* Fix conflict

* HDFFV-11229 merge changes from develop

* HDFFV-11229 merge second compare from develop

* HDFFV-11229 fix reference file

* HDFFV-11229 update autotools test script for two ref files

* HDFFV-11229 merge dev changes for long double display in tools

* Committing clang-format changes

* Update with changes from develop

* Add "option" command for clang options

* Rework CMake add_custom to use the BYPRODUCTS argument

Update pkgconfig scripts for parallel builds.
Fix install COPYING file reference.
Remove unused round defines.
Change CMake default setting of BUILD_CPP to off.

* Whitespace changes

* Rework CMake add_custom to use the BYPRODUCTS argument

* Revert CMake configure checks for round defines

* With VS 2015 minimum strdup is supported

* Doxygen comments merged from develop

* doxygen build updates

* Correct version string for map functions

* TRILAB-227 and tools debug merge from develop

* TRILAB-227 Enable test

* Quote subset args

* Use MATCHES in compiler id compare, merge from dev

* Revert test enable

* Add file to list

* doxygen version errors

* if blocks needed for build modes

* Update list of test platforms

* Issue #669 remove version from pkgcfg filename

* remove version from h5cc script

Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>

* More minor updates.

* Update configure disablhing memory alloc sanity check for release.
Last 50 lines of
/mnt/scr1/SnapTest/snapshots-hdf5-branchtest4/log/moohan_0525Tue_1021
Last 50 lines of
/mnt/scr1/SnapTest/snapshots-hdf5-branchtest4/log/moohan_0525Tue

* Set version to 1.12.1.

* Hdf5 1 12 fix warnings files (#755)

* OESS-98 fix tools test for plugins

* sync fork

* Merge of changes from dev

* Move problem option to bottom of the list until fixed

* HDFFV-11106 - fix parsing optional args

* HDFFV-11106 add note

* grammer fix

* Whitespace after clang formatting

* Undo format version 11 changes

* Update check to working version

* Merge workflow and minor changes from develop

* Update supported platforms

* PR#3 merge from develop

* Merge gcc 10 diagnostics option from develop

* Merge #318 OSX changes from develop

* Merge serval small changes from dev

* fix typo

* Minor non-space formatting changes

* GH #386 copyright corrections for java folder

* revert because logic requires false return

* Merges from develop

#358 patches from vtk
#361 fix header guard spelling

* Remove case statement for H5I_EVENTSET

* Correct call with versioning

* Remove tabs

* Double underscore change

* Merges from develop

#340 clang -Wformat-security warnings
#360 Fixed uninitialized warnings
Remove more underscores from header guards

* Merge #380 from develop

* Correct date entry

* Split format source and commit changes on repo push

* remove pre-split setting

* Change windows TS to use older VS.

* HDFFV-11212 JNI export util and Javadoc

* Suggested review changes

* Another change found

* Committing clang-format changes

* Some Javadoc warning fixes

* Committing clang-format changes

* Updated javadoc fixes

* HDFFV-11228/9 merges from develop

* remove obsolete debug comment

* Fix conflict

* HDFFV-11229 merge changes from develop

* HDFFV-11229 merge second compare from develop

* HDFFV-11229 fix reference file

* HDFFV-11229 update autotools test script for two ref files

* HDFFV-11229 merge dev changes for long double display in tools

* Committing clang-format changes

* Update with changes from develop

* Add "option" command for clang options

* Rework CMake add_custom to use the BYPRODUCTS argument

Update pkgconfig scripts for parallel builds.
Fix install COPYING file reference.
Remove unused round defines.
Change CMake default setting of BUILD_CPP to off.

* Whitespace changes

* Rework CMake add_custom to use the BYPRODUCTS argument

* Revert CMake configure checks for round defines

* With VS 2015 minimum strdup is supported

* Doxygen comments merged from develop

* doxygen build updates

* Correct version string for map functions

* TRILAB-227 and tools debug merge from develop

* TRILAB-227 Enable test

* Quote subset args

* Use MATCHES in compiler id compare, merge from dev

* Revert test enable

* Add file to list

* doxygen version errors

* if blocks needed for build modes

* Update list of test platforms

* Issue #669 remove version from pkgcfg filename

* remove version from h5cc script

* Merge CMake and java refs from dev

* Reworked CMake Fortran configure macros to allow multiple runs.

* Fix CMake issue with tests not comparing test argument properly.

* MAX_PRECISION defines must be defined with a value

* Fix warnings files and -std

* remove std for c++11

* Replace file

Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>

Co-authored-by: Allen Byrne <50328838+byrnHDF@users.noreply.github.com>
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Lee Newberg <35611400+Leengit@users.noreply.github.com>
Co-authored-by: Binh-Minh Ribler <bmribler@hdfgroup.org>
Co-authored-by: Gaute Hope <eg@gaute.vetsj.com>
  • Loading branch information
6 people authored Jun 16, 2021
1 parent 8734994 commit 796a014
Show file tree
Hide file tree
Showing 24 changed files with 609 additions and 172 deletions.
9 changes: 8 additions & 1 deletion MANIFEST
Original file line number Diff line number Diff line change
Expand Up @@ -136,6 +136,7 @@
./config/cygwin
./config/ibm-aix
./config/ibm-flags
./config/intel-cxxflags
./config/intel-fflags
./config/intel-flags
./config/libhdf5.pc.in
Expand All @@ -147,6 +148,7 @@
./config/lt_vers.am
./config/Makefile.am.blank
./config/netbsd
./config/pgi-cxxflags
./config/pgi-fflags
./config/pgi-flags
./config/solaris
Expand All @@ -172,6 +174,7 @@
./config/gnu-warnings/cxx-4.8
./config/gnu-warnings/cxx-4.9
./config/gnu-warnings/cxx-5
./config/gnu-warnings/cxx-9
./config/gnu-warnings/cxx-error-5
./config/gnu-warnings/cxx-error-general
./config/gnu-warnings/cxx-noerror-5
Expand All @@ -196,8 +199,12 @@
./config/gnu-warnings/noerror-5
./config/gnu-warnings/noerror-8
./config/gnu-warnings/noerror-general
./config/intel-warnings/ifort-general
./config/intel-warnings/15
./config/intel-warnings/18
./config/intel-warnings/developer-general
./config/intel-warnings/general
./config/intel-warnings/general-19
./config/intel-warnings/ifort-general

./config/site-specific/BlankForm

Expand Down
12 changes: 0 additions & 12 deletions config/clang-cxxflags
Original file line number Diff line number Diff line change
Expand Up @@ -113,18 +113,6 @@ if test "X-clang" = "X-$cxx_vendor" -o "X-Apple LLVM" = "X-$cxx_vendor"; then
;;
esac

case "$host_os-$host_cpu" in
# cygwin needs the "-std=c99" flag removed, so make
# a specific case for Cygwin without the flag and a default
# case to add the flag everywhere else
cygwin-*)
;;

*)
H5_CXXFLAGS="$H5_CXXFLAGS -std=c++11"
;;
esac

H5_CXXFLAGS="$H5_CXXFLAGS $arch"

##############
Expand Down
6 changes: 4 additions & 2 deletions config/clang-warnings/noerror-general
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
#
# HDF5 code should not trigger the following warnings under any
# circumstances, so ask the compiler to treat them as errors:
# These warnings will be treated as errors, using the error-general file,
# when HDF5_ENABLE_WARNINGS_AS_ERRORS is set to true for CMake or
# the --enable-warnings-as-errors option is specified for configure.
# Otherwise this file will be used to treat them as warnings.
#
-Wbad-function-cast
-Wimplicit-function-declaration
Expand Down
77 changes: 45 additions & 32 deletions config/cmake/HDFCXXCompilerFlags.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -86,9 +86,11 @@ if (NOT MSVC AND NOT MINGW)
# warnings that are emitted. If you need it, add it at configure time.
if (CMAKE_CXX_COMPILER_ID STREQUAL "Intel")
ADD_H5_FLAGS (HDF5_CMAKE_CXX_FLAGS "${HDF5_SOURCE_DIR}/config/intel-warnings/general")
if(NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 15.0)
ADD_H5_FLAGS (H5_CXXFLAGS "${HDF5_SOURCE_DIR}/config/intel-warnings/15")
endif()
if(NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 18.0)
list (APPEND H5_CXXFLAGS "-Wextra-tokens -Wformat -Wformat-security -Wic-pointer -Wshadow")
list (APPEND H5_CXXFLAGS "-Wsign-compare -Wtrigraphs -Wwrite-strings")
ADD_H5_FLAGS (H5_CXXFLAGS "${HDF5_SOURCE_DIR}/config/intel-warnings/18")
endif()
elseif (CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
if (CMAKE_COMPILER_IS_GNUCXX AND CMAKE_CXX_COMPILER_LOADED
Expand Down Expand Up @@ -117,36 +119,36 @@ if (NOT MSVC AND NOT MINGW)
#-----------------------------------------------------------------------------
if (HDF5_ENABLE_DEV_WARNINGS)
message (STATUS "....HDF5 developer group warnings are enabled")
# if (CMAKE_CXX_COMPILER_ID STREQUAL "Intel")
# list (APPEND H5_CXXFLAGS "-Winline -Wreorder -Wport -Wstrict-aliasing")
# elseif (CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
# autotools always add the C flags with the CXX flags
if (CMAKE_CXX_COMPILER_ID STREQUAL "Intel")
ADD_H5_FLAGS (H5_CXXFLAGS "${HDF5_SOURCE_DIR}/config/intel-warnings/developer-general")
elseif (CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
# Use the C warnings as CXX warnings are the same
ADD_H5_FLAGS (H5_CXXFLAGS "${HDF5_SOURCE_DIR}/config/gnu-warnings/developer-general")
# elseif (CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
# ADD_H5_FLAGS (H5_CXXFLAGS "${HDF5_SOURCE_DIR}/config/clang-warnings/developer-general")
elseif (CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
ADD_H5_FLAGS (H5_CXXFLAGS "${HDF5_SOURCE_DIR}/config/clang-warnings/developer-general")
endif ()
else ()
if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
# autotools always add the C flags with the CXX flags
# Use the C warnings as CXX warnings are the same
ADD_H5_FLAGS (H5_CXXFLAGS "${HDF5_SOURCE_DIR}/config/gnu-warnings/no-developer-general")
# elseif (CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
# ADD_H5_FLAGS (H5_CXXFLAGS "${HDF5_SOURCE_DIR}/config/clang-warnings/no-developer-general")
elseif (CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
ADD_H5_FLAGS (H5_CXXFLAGS "${HDF5_SOURCE_DIR}/config/clang-warnings/no-developer-general")
endif ()
endif ()

if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
# Technically, variable-length arrays are part of the C99 standard, but
# we should approach them a bit cautiously... Only needed for gcc 4.X
if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS 5.0 AND CMAKE_C_COMPILER_VERSION VERSION_GREATER_EQUAL 4.8)
# autotools always add the C flags with the CXX flags
# Use the C warnings as CXX warnings are the same
ADD_H5_FLAGS (H5_CXXFLAGS "${HDF5_SOURCE_DIR}/config/gnu-warnings/4.8-4.last")
endif ()

# Append more extra warning flags that only gcc 4.8+ knows about
if (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 4.8)
ADD_H5_FLAGS (H5_CXXFLAGS "${HDF5_SOURCE_DIR}/config/gnu-warnings/4.8")
ADD_H5_FLAGS (H5_CXXFLAGS "${HDF5_SOURCE_DIR}/config/gnu-warnings/cxx-4.8")
if (HDF5_ENABLE_DEV_WARNINGS)
# Use the C warnings as CXX warnings are the same
ADD_H5_FLAGS (H5_CXXFLAGS "${HDF5_SOURCE_DIR}/config/gnu-warnings/developer-4.8")
else ()
ADD_H5_FLAGS (H5_CXXFLAGS "${HDF5_SOURCE_DIR}/config/gnu-warnings/no-developer-4.8")
Expand All @@ -155,8 +157,7 @@ if (NOT MSVC AND NOT MINGW)

# Append more extra warning flags that only gcc 4.9+ knows about
if (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 4.9)
# autotools always add the C flags with the CXX flags
ADD_H5_FLAGS (H5_CXXFLAGS "${HDF5_SOURCE_DIR}/config/gnu-warnings/4.9")
# Use the C warnings as CXX warnings are the same
ADD_H5_FLAGS (H5_CXXFLAGS "${HDF5_SOURCE_DIR}/config/gnu-warnings/cxx-4.9")
endif ()

Expand All @@ -173,16 +174,16 @@ if (NOT MSVC AND NOT MINGW)

# Append more extra warning flags that only gcc 6.x+ knows about
if (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 6.0)
# autotools always add the C flags with the CXX flags
# Use the C warnings as CXX warnings are the same
ADD_H5_FLAGS (H5_CXXFLAGS "${HDF5_SOURCE_DIR}/config/gnu-warnings/6")
endif ()

# Append more extra warning flags that only gcc 7.x+ knows about
if (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 7.0)
# autotools always add the C flags with the CXX flags
# Use the C warnings as CXX warnings are the same
ADD_H5_FLAGS (H5_CXxFLAGS2 "${HDF5_SOURCE_DIR}/config/gnu-warnings/7")
if (HDF5_ENABLE_DEV_WARNINGS)
# autotools always add the C flags with the CXX flags
# Use the C warnings as CXX warnings are the same
ADD_H5_FLAGS (H5_CXXFLAGS "${HDF5_SOURCE_DIR}/config/gnu-warnings/developer-7")
#else ()
# ADD_H5_FLAGS (H5_CXXFLAGS "${HDF5_SOURCE_DIR}/config/gnu-warnings/no-developer-7")
Expand All @@ -191,15 +192,15 @@ if (NOT MSVC AND NOT MINGW)

# Append more extra warning flags that only gcc 8.x+ knows about
if (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 8.0)
# autotools always add the C flags with the CXX flags
# Use the C warnings as CXX warnings are the same
ADD_H5_FLAGS (H5_CXXFLAGS "${HDF5_SOURCE_DIR}/config/gnu-warnings/8")
#if (HDF5_ENABLE_WARNINGS_AS_ERRORS)
# ADD_H5_FLAGS (H5_CXXFLAGS "${HDF5_SOURCE_DIR}/config/gnu-warnings/error-8")
#else ()
# ADD_H5_FLAGS (H5_CXXFLAGS "${HDF5_SOURCE_DIR}/config/gnu-warnings/noerror-8")
#endif ()
if (HDF5_ENABLE_WARNINGS_AS_ERRORS)
ADD_H5_FLAGS (H5_CXXFLAGS "${HDF5_SOURCE_DIR}/config/gnu-warnings/error-8")
else ()
ADD_H5_FLAGS (H5_CXXFLAGS "${HDF5_SOURCE_DIR}/config/gnu-warnings/noerror-8")
endif ()
if (HDF5_ENABLE_DEV_WARNINGS)
# autotools always add the C flags with the CXX flags
# Use the C warnings as CXX warnings are the same
ADD_H5_FLAGS (H5_CXXFLAGS "${HDF5_SOURCE_DIR}/config/gnu-warnings/developer-8")
else ()
# autotools always add the C flags with the CXX flags
Expand All @@ -209,14 +210,26 @@ if (NOT MSVC AND NOT MINGW)

# Append more extra warning flags that only gcc 9.x+ knows about
if (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 9.0)
# autotools always add the C flags with the CXX flags
ADD_H5_FLAGS (H5_CXXFLAGS "${HDF5_SOURCE_DIR}/config/gnu-warnings/9")
# Use the C warnings as CXX warnings are the same
ADD_H5_FLAGS (H5_CXXFLAGS "${HDF5_SOURCE_DIR}/config/gnu-warnings/cxx-9")
endif ()
endif ()
else ()
if (NOT MINGW)
list (APPEND HDF5_CMAKE_CXX_FLAGS "/EHsc")

# Append more extra warning flags that only gcc 9.3+ knows about
if (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 9.3)
# do not use C warnings, gnu-warnings 9.3, no cxx warniings
# ADD_H5_FLAGS (H5_CXXFLAGS "${HDF5_SOURCE_DIR}/config/gnu-warnings/9.3")
endif ()

# Append more extra warning flags that only gcc 10.x+ knows about
if (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 10.0)
if (HDF5_ENABLE_DEV_WARNINGS)
# Use the C warnings as CXX warnings are the same
ADD_H5_FLAGS (H5_CXXFLAGS "${HDF5_SOURCE_DIR}/config/gnu-warnings/developer-10")
#else ()
# ADD_H5_FLAGS (H5_CXXFLAGS "${HDF5_SOURCE_DIR}/config/gnu-warnings/no-developer-10")
endif ()
endif ()
endif ()
endif ()

#-----------------------------------------------------------------------------
Expand Down
11 changes: 5 additions & 6 deletions config/cmake/HDFCompilerFlags.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -108,14 +108,13 @@ if (NOT MSVC AND NOT MINGW)
# warnings that are emitted. If you need it, add it at configure time.
if (CMAKE_C_COMPILER_ID STREQUAL "Intel")
ADD_H5_FLAGS (HDF5_CMAKE_C_FLAGS "${HDF5_SOURCE_DIR}/config/intel-warnings/general")
list (APPEND H5_CFLAGS "-Wcomment -Wdeprecated -Wmain -Wmissing-declarations -Wmissing-prototypes -Wp64 -Wpointer-arith")
list (APPEND H5_CFLAGS "-Wreturn-type -Wstrict-prototypes -Wuninitialized")
list (APPEND H5_CFLAGS "-Wunknown-pragmas -Wunused-function -Wunused-variable")
if(NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 15.0)
ADD_H5_FLAGS (H5_CFLAGS "${HDF5_SOURCE_DIR}/config/intel-warnings/15")
endif()
# this is just a failsafe
list (APPEND H5_CFLAGS "-finline-functions")
if(NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 18.0)
list (APPEND H5_CFLAGS "-Wextra-tokens -Wformat -Wformat-security -Wic-pointer -Wshadow")
list (APPEND H5_CFLAGS "-Wsign-compare -Wtrigraphs -Wwrite-strings")
ADD_H5_FLAGS (H5_CFLAGS "${HDF5_SOURCE_DIR}/config/intel-warnings/18")
endif()
elseif (CMAKE_C_COMPILER_ID STREQUAL "GNU")
# Add general CFlags for GCC versions 4.8 and above
Expand Down Expand Up @@ -153,7 +152,7 @@ if (NOT MSVC AND NOT MINGW)
if (HDF5_ENABLE_DEV_WARNINGS)
message (STATUS "....HDF5 developer group warnings are enabled")
if (CMAKE_C_COMPILER_ID STREQUAL "Intel")
list (APPEND H5_CFLAGS "-Winline -Wreorder -Wport -Wstrict-aliasing")
ADD_H5_FLAGS (H5_CFLAGS "${HDF5_SOURCE_DIR}/config/intel-warnings/developer-general")
elseif (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/developer-general")
elseif (CMAKE_C_COMPILER_ID MATCHES "[Cc]lang")
Expand Down
20 changes: 17 additions & 3 deletions config/gnu-cxxflags
Original file line number Diff line number Diff line change
Expand Up @@ -183,7 +183,6 @@ if test "X-g++" = "X-$cxx_vendor"; then
# Warnings #
############

# First load the C warnings then add CXX warnings (if needed)

###########
# General #
Expand All @@ -199,6 +198,7 @@ if test "X-g++" = "X-$cxx_vendor"; then
# Developer warnings #
######################

# Use the C warnings as CXX warnings are the same
NO_DEVELOPER_WARNING_CXXFLAGS=$(load_gnu_arguments no-developer-general)
DEVELOPER_WARNING_CXXFLAGS=$(load_gnu_arguments developer-general)

Expand All @@ -210,6 +210,7 @@ if test "X-g++" = "X-$cxx_vendor"; then

# GCC 4.8 through the end of GCC 4 series
if test $cxx_vers_major -eq 4 -a $cxx_vers_minor -ge 8; then
# Use the C warnings as CXX warnings are the same
H5_CXXFLAGS="$H5_CXXFLAGS $(load_gnu_arguments 4.8-4.last)"
fi

Expand All @@ -220,13 +221,13 @@ if test "X-g++" = "X-$cxx_vendor"; then
# gcc >= 4.8
if test $cxx_vers_major -ge 5 -o $cxx_vers_major -eq 4 -a $cxx_vers_minor -ge 8; then
H5_CXXFLAGS="$H5_CXXFLAGS $(load_gnu_arguments cxx-4.8)"
# Use the C warnings as CXX warnings are the same
DEVELOPER_WARNING_CXXFLAGS="$DEVELOPER_WARNING_CXXFLAGS $(load_gnu_arguments developer-4.8)"
NO_DEVELOPER_WARNING_CXXFLAGS="$NO_DEVELOPER_WARNING_CXXFLAGS $(load_gnu_arguments no-developer-4.8)"
fi

# gcc >= 4.9
if test $cxx_vers_major -ge 5 -o $cxx_vers_major -eq 4 -a $cxx_vers_minor -ge 9; then
H5_CXXFLAGS="$H5_CXXFLAGS $(load_gnu_arguments 4.9)"
H5_CXXFLAGS="$H5_CXXFLAGS $(load_gnu_arguments cxx-4.9)"
fi

Expand All @@ -239,27 +240,40 @@ if test "X-g++" = "X-$cxx_vendor"; then

# gcc >= 6
if test $cxx_vers_major -ge 6; then
# Use the C warnings as CXX warnings are the same
H5_CXXFLAGS="$H5_CXXFLAGS $(load_gnu_arguments 6)"
fi

# gcc >= 7
if test $cxx_vers_major -ge 7; then
# Use the C warnings as CXX warnings are the same
H5_CXXFLAGS="$H5_CXXFLAGS $(load_gnu_arguments 7)"
DEVELOPER_WARNING_CXXFLAGS="$DEVELOPER_WARNING_CXXFLAGS $(load_gnu_arguments developer-7)"
fi

# gcc 8
if test $cxx_vers_major -ge 8; then
# Use the C warnings as CXX warnings are the same
H5_CXXFLAGS="$H5_CXXFLAGS $(load_gnu_arguments 8)"
#H5_ECXXFLAGS="$H5_ECXXFLAGS $(load_gnu_arguments error-8)"
#H5_NECXXFLAGS="$H5_NECXXFLAGS $(load_gnu_arguments noerror-8)"
# Use the C warnings as CXX warnings are the same
DEVELOPER_WARNING_CXXFLAGS="$DEVELOPER_WARNING_CXXFLAGS $(load_gnu_arguments developer-8)"
NO_DEVELOPER_WARNING_CXXFLAGS="$NO_DEVELOPER_WARNING_CXXFLAGS $(load_gnu_arguments no-developer-8)"
fi

# gcc 9
if test $cxx_vers_major -ge 9; then
H5_CXXFLAGS="$H5_CXXFLAGS $(load_gnu_arguments 9)"
H5_CXXFLAGS="$H5_CXXFLAGS $(load_gnu_arguments cxx-9)"
fi

# gcc >= 9.3
# no cxx warnings, do NOT use C warnings

# gcc >= 10
if test $cxx_vers_major -ge 10; then
# Use the C warnings as CXX warnings are the same
DEVELOPER_WARNING_CFLAGS="$DEVELOPER_WARNING_CFLAGS $(load_gnu_arguments developer-10)"
fi

#################
Expand Down
6 changes: 3 additions & 3 deletions config/gnu-flags
Original file line number Diff line number Diff line change
Expand Up @@ -207,9 +207,9 @@ if test "X-gcc" = "X-$cc_vendor"; then
H5_ECFLAGS="$H5_ECFLAGS $(load_gnu_arguments error-general)"
H5_NECFLAGS="$H5_NECFLAGS $(load_gnu_arguments noerror-general)"

######################
# Developer warnings #
######################
######################
# Developer warnings #
######################

NO_DEVELOPER_WARNING_CFLAGS=$(load_gnu_arguments no-developer-general)
DEVELOPER_WARNING_CFLAGS=$(load_gnu_arguments developer-general)
Expand Down
1 change: 1 addition & 0 deletions config/gnu-warnings/cxx-4.9
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
-Wdate-time
-Wopenmp-simd
4 changes: 4 additions & 0 deletions config/gnu-warnings/cxx-9
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
-Wattribute-alias=2
-Wmissing-profile
# Turn this on when the C++ wrappers obey the Rule of Five
-Wno-deprecated-copy
4 changes: 0 additions & 4 deletions config/gnu-warnings/developer-10
Original file line number Diff line number Diff line change
@@ -1,6 +1,2 @@
# New warning
-Warith-conversion

# Enable static analysis of program flow
-fanalyzer
-fdiagnostics-path-format=none
6 changes: 4 additions & 2 deletions config/gnu-warnings/noerror-general
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
#
# HDF5 code should not trigger the following warnings under any
# circumstances, so ask the compiler to treat them as errors:
# These warnings will be treated as errors, using the error-general file,
# when HDF5_ENABLE_WARNINGS_AS_ERRORS is set to true for CMake or
# the --enable-warnings-as-errors option is specified for configure.
# Otherwise this file will be used to treat them as warnings.
#
-Wbad-function-cast
-Wimplicit-function-declaration
Expand Down
Loading

0 comments on commit 796a014

Please sign in to comment.