diff options
author | Dana Robinson <43805+derobins@users.noreply.github.com> | 2022-08-23 15:48:14 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-08-23 15:48:14 (GMT) |
commit | f020d129b2ed173c8d0075d670214440013d7daf (patch) | |
tree | d5bc621f4469e0ee66f99c8d89f6de0813fc0a73 | |
parent | 21ec3378558cdc642ff49963c13ca18d8e49349c (diff) | |
download | hdf5-f020d129b2ed173c8d0075d670214440013d7daf.zip hdf5-f020d129b2ed173c8d0075d670214440013d7daf.tar.gz hdf5-f020d129b2ed173c8d0075d670214440013d7daf.tar.bz2 |
Corrects more Fortran warnings (#2059)
* Moves -Wunused-dummy-arguments to the developer warnings since this
generates a lot of spurious, unfixable noise due to things like
callback wrappers
* Changes the return cast in h5fget_fileno_c, fixes a comment, and comment
on potential badness
* Initializes a variable in tH5L_F03.F90 to quiet a 'maybe
uninitialized' warning
-rw-r--r-- | config/cmake/HDFFortranCompilerFlags.cmake | 11 | ||||
-rw-r--r-- | config/gnu-fflags | 5 | ||||
-rw-r--r-- | config/gnu-warnings/gfort-developer-5 (renamed from config/gnu-warnings/developer-gfort-5) | 0 | ||||
-rw-r--r-- | config/gnu-warnings/gfort-developer-general | 3 | ||||
-rw-r--r-- | config/gnu-warnings/gfort-no-developer-general | 3 | ||||
-rw-r--r-- | configure.ac | 1 | ||||
-rw-r--r-- | fortran/src/H5Ff.c | 8 | ||||
-rw-r--r-- | fortran/test/tH5L_F03.F90 | 3 |
8 files changed, 25 insertions, 9 deletions
diff --git a/config/cmake/HDFFortranCompilerFlags.cmake b/config/cmake/HDFFortranCompilerFlags.cmake index 13e9902..7fdc3f8 100644 --- a/config/cmake/HDFFortranCompilerFlags.cmake +++ b/config/cmake/HDFFortranCompilerFlags.cmake @@ -54,10 +54,6 @@ if (CMAKE_Fortran_COMPILER_ID STREQUAL "GNU" AND NOT CMAKE_Fortran_COMPILER_VERS endif () endif () -#----------------------------------------------------------------------------- -# CDash is configured to only allow 3000 warnings, so -# break into groups (from the config/gnu-flags file) -#----------------------------------------------------------------------------- if (NOT MSVC AND NOT MINGW) # General flags if (CMAKE_Fortran_COMPILER_ID STREQUAL "Intel") @@ -65,6 +61,11 @@ if (NOT MSVC AND NOT MINGW) list (APPEND HDF5_CMAKE_Fortran_FLAGS "-free") elseif (CMAKE_Fortran_COMPILER_ID STREQUAL "GNU") ADD_H5_FLAGS (HDF5_CMAKE_Fortran_FLAGS "${HDF5_SOURCE_DIR}/config/gnu-warnings/gfort-general") + if (HDF5_ENABLE_DEV_WARNINGS) + ADD_H5_FLAGS (HDF5_CMAKE_Fortran_FLAGS "${HDF5_SOURCE_DIR}/config/gnu-warnings/gfort-developer-general") + else () + ADD_H5_FLAGS (HDF5_CMAKE_Fortran_FLAGS "${HDF5_SOURCE_DIR}/config/gnu-warnings/gfort-no-developer-general") + endif () list (APPEND HDF5_CMAKE_Fortran_FLAGS "-ffree-form" "-fimplicit-none") if (CMAKE_Fortran_COMPILER_VERSION VERSION_LESS 8.0 AND NOT CMAKE_Fortran_COMPILER_VERSION VERSION_LESS 4.6) list (APPEND HDF5_CMAKE_Fortran_FLAGS "-std=f2008ts") @@ -92,7 +93,7 @@ if (NOT MSVC AND NOT MINGW) # Append more extra warning flags that only gcc 5.x+ knows about if (NOT CMAKE_Fortran_COMPILER_VERSION VERSION_LESS 5.0) if (HDF5_ENABLE_DEV_WARNINGS) - ADD_H5_FLAGS (HDF5_CMAKE_Fortran_FLAGS "${HDF5_SOURCE_DIR}/config/gnu-warnings/developer-gfort-5") + ADD_H5_FLAGS (HDF5_CMAKE_Fortran_FLAGS "${HDF5_SOURCE_DIR}/config/gnu-warnings/gfort-developer-5") endif () endif () diff --git a/config/gnu-fflags b/config/gnu-fflags index 1333ce5..0230e5c 100644 --- a/config/gnu-fflags +++ b/config/gnu-fflags @@ -150,6 +150,9 @@ if test "X-gfortran" = "X-$f9x_vendor"; then H5_FCFLAGS="$H5_FCFLAGS $(load_gnu_arguments gfort-general)" + NO_DEVELOPER_WARNING_FCFLAGS="$NO_DEVELOPER_WARNING_FCFLAGS $(load_gnu_arguments gfort-no-developer-general)" + DEVELOPER_WARNING_FCFLAGS="$DEVELOPER_WARNING_FCFLAGS $(load_gnu_arguments gfort-developer-general)" + ############################# # Version-specific warnings # ############################# @@ -163,7 +166,7 @@ if test "X-gfortran" = "X-$f9x_vendor"; then # gfortran >= 5 if test $f9x_vers_major -ge 5; then - DEVELOPER_WARNING_FCFLAGS="$DEVELOPER_WARNING_FCFLAGS $(load_gnu_arguments developer-gfort-5)" + DEVELOPER_WARNING_FCFLAGS="$DEVELOPER_WARNING_FCFLAGS $(load_gnu_arguments gfort-developer-5)" fi # gfortran >= 6 diff --git a/config/gnu-warnings/developer-gfort-5 b/config/gnu-warnings/gfort-developer-5 index c5d3850..c5d3850 100644 --- a/config/gnu-warnings/developer-gfort-5 +++ b/config/gnu-warnings/gfort-developer-5 diff --git a/config/gnu-warnings/gfort-developer-general b/config/gnu-warnings/gfort-developer-general new file mode 100644 index 0000000..dde15fe --- /dev/null +++ b/config/gnu-warnings/gfort-developer-general @@ -0,0 +1,3 @@ +# There is no easy way in Fortran to indicate parameters are intentionally +# unused and many callbacks will have these, generating a lot of noise. +-Wunused-dummy-argument diff --git a/config/gnu-warnings/gfort-no-developer-general b/config/gnu-warnings/gfort-no-developer-general new file mode 100644 index 0000000..bfcba22 --- /dev/null +++ b/config/gnu-warnings/gfort-no-developer-general @@ -0,0 +1,3 @@ +# There is no easy way in Fortran to indicate parameters are intentionally +# unused and many callbacks will have these, generating a lot of noise. +-Wno-unused-dummy-argument diff --git a/configure.ac b/configure.ac index 340decb..e2fbf04 100644 --- a/configure.ac +++ b/configure.ac @@ -2336,6 +2336,7 @@ case "X-$DEV_WARNINGS" in ;; X-no) H5_CFLAGS="$H5_CFLAGS $NO_DEVELOPER_WARNING_CFLAGS" + H5_FCFLAGS="$H5_FCFLAGS $NO_DEVELOPER_WARNING_FCFLAGS" AC_MSG_RESULT([no]) ;; *) diff --git a/fortran/src/H5Ff.c b/fortran/src/H5Ff.c index 2cb8654..189d2da 100644 --- a/fortran/src/H5Ff.c +++ b/fortran/src/H5Ff.c @@ -664,11 +664,15 @@ h5fget_fileno_c(hid_t_f *file_id, int_f *fileno) herr_t ret_value = 0; /* Return value */ /* - * Call H5Fget_filesize function + * Call H5Fget_fileno function */ if ((ret_value = H5Fget_fileno((hid_t)*file_id, &fileno_c)) < 0) HGOTO_DONE(FAIL); - *fileno = (hsize_t_f)fileno_c; + + /* XXX: This will have problems if the library fileno value doesn't fit + * into an int_f. + */ + *fileno = (int_f)fileno_c; done: return ret_value; diff --git a/fortran/test/tH5L_F03.F90 b/fortran/test/tH5L_F03.F90 index a4e960b..a02a540 100644 --- a/fortran/test/tH5L_F03.F90 +++ b/fortran/test/tH5L_F03.F90 @@ -73,7 +73,8 @@ CONTAINS INTEGER, SAVE :: count INTEGER, SAVE :: count2 -!!$ + liter_cb = 0 + !!$ iter_info *info = (iter_info *)op_data; !!$ static int count = 0; !!$ static int count2 = 0; |