TRILAB-244 separate CXX warnings and errors from C

This commit is contained in:
Allen Byrne 2020-04-23 14:32:29 -05:00 committed by Larry Knox
parent 49a76869aa
commit 54764c99be
13 changed files with 129 additions and 56 deletions

View File

@ -166,6 +166,9 @@
./config/gnu-warnings/9 ./config/gnu-warnings/9
./config/gnu-warnings/cxx-general ./config/gnu-warnings/cxx-general
./config/gnu-warnings/cxx-4.9 ./config/gnu-warnings/cxx-4.9
./config/gnu-warnings/cxx-5
./config/gnu-warnings/cxx-error-5
./config/gnu-warnings/cxx-error-general
./config/gnu-warnings/developer-4.5 ./config/gnu-warnings/developer-4.5
./config/gnu-warnings/developer-4.6 ./config/gnu-warnings/developer-4.6
./config/gnu-warnings/developer-4.7 ./config/gnu-warnings/developer-4.7

View File

@ -368,7 +368,6 @@ static void test_array_info()
float f[ARRAY1_DIM1]; float f[ARRAY1_DIM1];
} s1_t; } s1_t;
s1_t wdata[SPACE1_DIM1][ARRAY1_DIM1]; // Information to write s1_t wdata[SPACE1_DIM1][ARRAY1_DIM1]; // Information to write
s1_t rdata[SPACE1_DIM1][ARRAY1_DIM1]; // Information read in
hsize_t sdims1[] = {SPACE1_DIM1}; hsize_t sdims1[] = {SPACE1_DIM1};
hsize_t tdims1[] = {ARRAY1_DIM1}; hsize_t tdims1[] = {ARRAY1_DIM1};
int ii; // counting variables int ii; // counting variables

View File

@ -430,7 +430,6 @@ const H5std_string DSETNAME("dataset");
static void test_open_object_header() static void test_open_object_header()
{ {
hsize_t dims[2]; hsize_t dims[2];
H5G_info_t ginfo; /* Group info struct */
// Output message about test being performed // Output message about test being performed
SUBTEST("Group::getObjId"); SUBTEST("Group::getObjId");
@ -485,6 +484,7 @@ static void test_open_object_header()
dset.setId(obj_dset); dset.setId(obj_dset);
dspace = dset.getSpace(); dspace = dset.getSpace();
bool is_simple = dspace.isSimple(); bool is_simple = dspace.isSimple();
verify_val(is_simple, true, "isSimple", __LINE__, __FILE__);
dspace.close(); dspace.close();
// Open datatype object from the group // Open datatype object from the group
@ -542,7 +542,7 @@ const H5std_string GROUP1NAME("group1");
const H5std_string GROUP2NAME("group2"); const H5std_string GROUP2NAME("group2");
static void test_getobjectinfo_same_file() static void test_getobjectinfo_same_file()
{ {
H5O_info2_t oinfo1, oinfo2; /* Object info structs */ H5O_info2_t oinfo1, oinfo2; /* Object info structs */
// Output message about test being performed // Output message about test being performed
SUBTEST("Group::getObjinfo"); SUBTEST("Group::getObjinfo");

View File

@ -403,7 +403,7 @@ static void test_vltype()
// Verify that the copied type has a valid id // Verify that the copied type has a valid id
bool is_valid = IdComponent::isValid(vltype2.getId()); bool is_valid = IdComponent::isValid(vltype2.getId());
verify_val(in_class, true, "isValid on vltype2", __LINE__, __FILE__); verify_val(is_valid, true, "isValid on vltype2", __LINE__, __FILE__);
in_class = vltype2.detectClass(H5T_VLEN); in_class = vltype2.detectClass(H5T_VLEN);
verify_val(in_class, true, "VarLenType::detectClass() with H5T_VLEN for vltype2", __LINE__, __FILE__); verify_val(in_class, true, "VarLenType::detectClass() with H5T_VLEN for vltype2", __LINE__, __FILE__);
@ -1010,8 +1010,8 @@ static void test_encode_decode()
FloatType decoded_flttyp(decoded_flt_ptr->getId()); FloatType decoded_flttyp(decoded_flt_ptr->getId());
verify_val(flttyp == decoded_flttyp, true, "DataType::decode", __LINE__, __FILE__); verify_val(flttyp == decoded_flttyp, true, "DataType::decode", __LINE__, __FILE__);
H5std_string norm_string; //H5std_string norm_string;
H5T_norm_t mant_norm = decoded_flttyp.getNorm(norm_string); //H5T_norm_t mant_norm = decoded_flttyp.getNorm(norm_string);
//verify_val(decoded_flttyp.isVariableStr(), true, "DataType::decode", __LINE__, __FILE__); //verify_val(decoded_flttyp.isVariableStr(), true, "DataType::decode", __LINE__, __FILE__);
delete decoded_flt_ptr; delete decoded_flt_ptr;

View File

@ -104,11 +104,11 @@ if (NOT MSVC)
endif() endif()
elseif (CMAKE_CXX_COMPILER_ID STREQUAL "GNU") elseif (CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
if (CMAKE_COMPILER_IS_GNUCXX AND CMAKE_CXX_COMPILER_LOADED if (CMAKE_COMPILER_IS_GNUCXX AND CMAKE_CXX_COMPILER_LOADED
AND NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 4.2) AND CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 4.2)
# autotools always add the C flags with the CXX flags, except for # autotools adds the C flags with the CXX flags for g++ compiler
# with older versions that are no longer supported # versions 4.2 and above.
ADD_H5_FLAGS (HDF5_CMAKE_CXX_FLAGS "${HDF5_SOURCE_DIR}/config/gnu-warnings/general")
ADD_H5_FLAGS (HDF5_CMAKE_CXX_FLAGS "${HDF5_SOURCE_DIR}/config/gnu-warnings/cxx-general") ADD_H5_FLAGS (HDF5_CMAKE_CXX_FLAGS "${HDF5_SOURCE_DIR}/config/gnu-warnings/cxx-general")
ADD_H5_FLAGS (H5_CXXFLAGS0 "${HDF5_SOURCE_DIR}/config/gnu-warnings/cxx-error-general")
endif () endif ()
elseif (CMAKE_CXX_COMPILER_ID STREQUAL "Clang") elseif (CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
ADD_H5_FLAGS (HDF5_CMAKE_CXX_FLAGS "${HDF5_SOURCE_DIR}/config/clang-warnings/general") ADD_H5_FLAGS (HDF5_CMAKE_CXX_FLAGS "${HDF5_SOURCE_DIR}/config/clang-warnings/general")
@ -167,10 +167,10 @@ if (NOT MSVC)
ADD_H5_FLAGS (H5_CXXFLAGS1 "${HDF5_SOURCE_DIR}/config/gnu-warnings/4.5") ADD_H5_FLAGS (H5_CXXFLAGS1 "${HDF5_SOURCE_DIR}/config/gnu-warnings/4.5")
if (HDF5_ENABLE_DEV_WARNINGS) if (HDF5_ENABLE_DEV_WARNINGS)
# autotools always add the C flags with the CXX flags # autotools always add the C flags with the CXX flags
ADD_H5_FLAGS (H5_CXXFLAGS1 "${HDF5_SOURCE_DIR}/config/gnu-warnings/developer-4.5") #ADD_H5_FLAGS (H5_CXXFLAGS1 "${HDF5_SOURCE_DIR}/config/gnu-warnings/developer-4.5")
else () else ()
# autotools always add the C flags with the CXX flags # autotools always add the C flags with the CXX flags
ADD_H5_FLAGS (H5_CXXFLAGS1 "${HDF5_SOURCE_DIR}/config/gnu-warnings/no-developer-4.5") #ADD_H5_FLAGS (H5_CXXFLAGS1 "${HDF5_SOURCE_DIR}/config/gnu-warnings/no-developer-4.5")
endif () endif ()
endif () endif ()
@ -232,8 +232,8 @@ if (NOT MSVC)
# Append more extra warning flags that only gcc 5.1+ know about # Append more extra warning flags that only gcc 5.1+ know about
if (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 5.0) if (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 5.0)
# autotools always add the C flags with the CXX flags # autotools always add the C flags with the CXX flags
ADD_H5_FLAGS (H5_CXXFLAGS1 "${HDF5_SOURCE_DIR}/config/gnu-warnings/5") ADD_H5_FLAGS (H5_CXXFLAGS1 "${HDF5_SOURCE_DIR}/config/gnu-warnings/cxx-5")
ADD_H5_FLAGS (H5_CXXFLAGS1 "${HDF5_SOURCE_DIR}/config/gnu-warnings/error-5") ADD_H5_FLAGS (H5_CXXFLAGS1 "${HDF5_SOURCE_DIR}/config/gnu-warnings/cxx-error-5")
endif () endif ()
# Append more extra warning flags that only gcc 6.x+ know about # Append more extra warning flags that only gcc 6.x+ know about
@ -258,6 +258,7 @@ if (NOT MSVC)
if (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 8.0) if (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 8.0)
# autotools always add the C flags with the CXX flags # autotools always add the C flags with the CXX flags
ADD_H5_FLAGS (H5_CXXFLAGS3 "${HDF5_SOURCE_DIR}/config/gnu-warnings/8") ADD_H5_FLAGS (H5_CXXFLAGS3 "${HDF5_SOURCE_DIR}/config/gnu-warnings/8")
#ADD_H5_FLAGS (H5_CXXFLAGS3 "${HDF5_SOURCE_DIR}/config/gnu-warnings/error-8")
if (HDF5_ENABLE_DEV_WARNINGS) if (HDF5_ENABLE_DEV_WARNINGS)
# autotools always add the C flags with the CXX flags # autotools always add the C flags with the CXX flags
ADD_H5_FLAGS (H5_CXXFLAGS3 "${HDF5_SOURCE_DIR}/config/gnu-warnings/developer-8") ADD_H5_FLAGS (H5_CXXFLAGS3 "${HDF5_SOURCE_DIR}/config/gnu-warnings/developer-8")

View File

@ -44,7 +44,7 @@ demote_errors()
load_gnu_arguments() load_gnu_arguments()
{ {
set -- $(for arg; do set -- $(for arg; do
sed 's,#.*$,,' $srcdir/config/gnu-warnings/${arg} | demote_errors sed 's,#.*$,,' $srcdir/config/gnu-warnings/${arg}
done) done)
IFS=' ' echo "$*" IFS=' ' echo "$*"
} }
@ -181,10 +181,8 @@ if test "X-g++" = "X-$cxx_vendor"; then
########### ###########
if test $cxx_vers_major -eq 4 -a $cxx_vers_minor -ge 2 -o $cxx_vers_major -gt 4; then if test $cxx_vers_major -eq 4 -a $cxx_vers_minor -ge 2 -o $cxx_vers_major -gt 4; then
H5_CXXFLAGS="$H5_CXXFLAGS $(load_gnu_arguments general)"
H5_ECXXFLAGS="$H5_ECXXFLAGS $(load_gnu_arguments error-general)"
H5_CXXFLAGS="$H5_CXXFLAGS $(load_gnu_arguments cxx-general)" H5_CXXFLAGS="$H5_CXXFLAGS $(load_gnu_arguments cxx-general)"
#H5_ECXXFLAGS="$H5_ECXXFLAGS $(load_gnu_arguments error-cxx-general)" H5_ECXXFLAGS="$H5_ECXXFLAGS $(load_gnu_arguments cxx-error-general)"
fi fi
###################### ######################
@ -240,29 +238,29 @@ if test "X-g++" = "X-$cxx_vendor"; then
# gcc >= 4.5 # gcc >= 4.5
if test $cxx_vers_major -ge 5 -o $cxx_vers_major -eq 4 -a $cxx_vers_minor -ge 5; then if test $cxx_vers_major -ge 5 -o $cxx_vers_major -eq 4 -a $cxx_vers_minor -ge 5; then
H5_CXXFLAGS="$H5_CXXFLAGS $(load_gnu_arguments 4.5)" H5_CXXFLAGS="$H5_CXXFLAGS $(load_gnu_arguments 4.5)"
DEVELOPER_WARNING_CXXFLAGS="$DEVELOPER_WARNING_CXXFLAGS $(load_gnu_arguments developer-4.5)" #DEVELOPER_WARNING_CXXFLAGS="$DEVELOPER_WARNING_CXXFLAGS $(load_gnu_arguments developer-4.5)"
NO_DEVELOPER_WARNING_CXXFLAGS="$NO_DEVELOPER_WARNING_CXXFLAGS $(load_gnu_arguments no-developer-4.5)" #NO_DEVELOPER_WARNING_CXXFLAGS="$NO_DEVELOPER_WARNING_CXXFLAGS $(load_gnu_arguments no-developer-4.5)"
fi fi
# gcc >= 4.6 # gcc >= 4.6
if test $cxx_vers_major -ge 5 -o $cxx_vers_major -eq 4 -a $cxx_vers_minor -ge 6; then if test $cxx_vers_major -ge 5 -o $cxx_vers_major -eq 4 -a $cxx_vers_minor -ge 6; then
H5_CXXFLAGS="$H5_CXXFLAGS $(load_gnu_arguments 4.6)" H5_CXXFLAGS="$H5_CXXFLAGS $(load_gnu_arguments 4.6)"
DEVELOPER_WARNING_CXXFLAGS="$DEVELOPER_WARNING_CXXFLAGS $(load_gnu_arguments developer-4.6)" DEVELOPER_WARNING_CXXFLAGS="$DEVELOPER_WARNING_CXXFLAGS $(load_gnu_arguments developer-4.6)"
NO_DEVELOPER_WARNING_CXXFLAGS="$NO_DEVELOPER_WARNING_CXXFLAGS $(load_gnu_arguments no-developer-4.6)" NO_DEVELOPER_WARNING_CXXFLAGS="$NO_DEVELOPER_WARNING_CXXFLAGS $(load_gnu_arguments no-developer-4.6)"
fi fi
# gcc >= 4.7 # gcc >= 4.7
if test $cxx_vers_major -ge 5 -o $cxx_vers_major -eq 4 -a $cxx_vers_minor -ge 7; then if test $cxx_vers_major -ge 5 -o $cxx_vers_major -eq 4 -a $cxx_vers_minor -ge 7; then
H5_CXXFLAGS="$H5_CXXFLAGS $(load_gnu_arguments 4.7)" H5_CXXFLAGS="$H5_CXXFLAGS $(load_gnu_arguments 4.7)"
DEVELOPER_WARNING_CXXFLAGS="$DEVELOPER_WARNING_CXXFLAGS $(load_gnu_arguments developer-4.7)" DEVELOPER_WARNING_CXXFLAGS="$DEVELOPER_WARNING_CXXFLAGS $(load_gnu_arguments developer-4.7)"
NO_DEVELOPER_WARNING_CXXFLAGS="$NO_DEVELOPER_WARNING_CXXFLAGS $(load_gnu_arguments no-developer-4.7)" NO_DEVELOPER_WARNING_CXXFLAGS="$NO_DEVELOPER_WARNING_CXXFLAGS $(load_gnu_arguments no-developer-4.7)"
fi fi
# gcc >= 4.8 # gcc >= 4.8
if test $cxx_vers_major -ge 5 -o $cxx_vers_major -eq 4 -a $cxx_vers_minor -ge 8; then 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 4.8)" H5_CXXFLAGS="$H5_CXXFLAGS $(load_gnu_arguments 4.8)"
DEVELOPER_WARNING_CXXFLAGS="$DEVELOPER_WARNING_CXXFLAGS $(load_gnu_arguments developer-4.8)" 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)" NO_DEVELOPER_WARNING_CXXFLAGS="$NO_DEVELOPER_WARNING_CXXFLAGS $(load_gnu_arguments no-developer-4.8)"
fi fi
# gcc >= 4.9 # gcc >= 4.9
@ -273,8 +271,8 @@ if test "X-g++" = "X-$cxx_vendor"; then
# gcc >= 5 # gcc >= 5
if test $cxx_vers_major -ge 5; then if test $cxx_vers_major -ge 5; then
H5_CXXFLAGS="$H5_CXXFLAGS $(load_gnu_arguments 5)" H5_CXXFLAGS="$H5_CXXFLAGS $(load_gnu_arguments cxx-5)"
H5_ECXXFLAGS="$H5_ECXXFLAGS $(load_gnu_arguments error-5)" H5_ECXXFLAGS="$H5_ECXXFLAGS $(load_gnu_arguments cxx-error-5)"
fi fi
# gcc >= 6 # gcc >= 6
@ -285,15 +283,15 @@ if test "X-g++" = "X-$cxx_vendor"; then
# gcc >= 7 # gcc >= 7
if test $cxx_vers_major -ge 7; then if test $cxx_vers_major -ge 7; then
H5_CXXFLAGS="$H5_CXXFLAGS $(load_gnu_arguments 7)" H5_CXXFLAGS="$H5_CXXFLAGS $(load_gnu_arguments 7)"
DEVELOPER_WARNING_CXXFLAGS="$DEVELOPER_WARNING_CXXFLAGS $(load_gnu_arguments developer-7)" DEVELOPER_WARNING_CXXFLAGS="$DEVELOPER_WARNING_CXXFLAGS $(load_gnu_arguments developer-7)"
fi fi
# gcc 8 # gcc 8
if test $cxx_vers_major -ge 8; then if test $cxx_vers_major -ge 8; then
H5_CXXFLAGS="$H5_CXXFLAGS $(load_gnu_arguments 8)" H5_CXXFLAGS="$H5_CXXFLAGS $(load_gnu_arguments 8)"
H5_ECXXFLAGS="$H5_ECXXFLAGS $(load_gnu_arguments error-8)" #H5_ECXXFLAGS="$H5_ECXXFLAGS $(load_gnu_arguments error-8)"
DEVELOPER_WARNING_CXXFLAGS="$DEVELOPER_WARNING_CXXFLAGS $(load_gnu_arguments developer-8)" 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)" NO_DEVELOPER_WARNING_CXXFLAGS="$NO_DEVELOPER_WARNING_CXXFLAGS $(load_gnu_arguments no-developer-8)"
fi fi
# gcc 9 # gcc 9

View File

@ -26,7 +26,7 @@
load_gnu_arguments() load_gnu_arguments()
{ {
set -- $(for arg; do set -- $(for arg; do
sed 's,#.*$,,' $srcdir/config/gnu-warnings/${arg} | demote_errors sed 's,#.*$,,' $srcdir/config/gnu-warnings/${arg}
done) done)
IFS=' ' echo "$*" IFS=' ' echo "$*"
} }

View File

@ -28,11 +28,11 @@ PROMOTE_ERRORS_DFLT=no
# #
demote_errors() demote_errors()
{ {
if [ ${PROMOTE_ERRORS:-${PROMOTE_ERRORS_DFLT}} = no ]; then if [ ${PROMOTE_ERRORS:-${PROMOTE_ERRORS_DFLT}} = no ]; then
sed 's,-Werror=,-W,g' sed 's,-Werror=,-W,g'
else else
cat cat
fi fi
} }
# #
@ -44,7 +44,7 @@ demote_errors()
load_gnu_arguments() load_gnu_arguments()
{ {
set -- $(for arg; do set -- $(for arg; do
sed 's,#.*$,,' $srcdir/config/gnu-warnings/${arg} | demote_errors sed 's,#.*$,,' $srcdir/config/gnu-warnings/${arg}
done) done)
IFS=' ' echo "$*" IFS=' ' echo "$*"
} }
@ -212,7 +212,7 @@ if test "X-gcc" = "X-$cc_vendor"; then
# GCC 4.2 through 4.3 # GCC 4.2 through 4.3
if test $cc_vers_major -eq 4 -a $cc_vers_minor -ge 2 -o $cc_vers_major -eq 4 -a $cc_vers_minor -le 3; then if test $cc_vers_major -eq 4 -a $cc_vers_minor -ge 2 -o $cc_vers_major -eq 4 -a $cc_vers_minor -le 3; then
H5_CFLAGS="$H5_CFLAGS $(load_gnu_arguments 4.2-4.3)" H5_CFLAGS="$H5_CFLAGS $(load_gnu_arguments 4.2-4.3)"
fi fi
# GCC 4.5 through 4.6 # GCC 4.5 through 4.6
if test $cc_vers_major -eq 4 -a $cc_vers_minor -ge 5 -o $cc_vers_major -eq 4 -a $cc_vers_minor -le 6; then if test $cc_vers_major -eq 4 -a $cc_vers_minor -ge 5 -o $cc_vers_major -eq 4 -a $cc_vers_minor -le 6; then
@ -236,7 +236,7 @@ if test "X-gcc" = "X-$cc_vendor"; then
# gcc >= 4.3 # gcc >= 4.3
if test $cc_vers_major -ge 5 -o $cc_vers_major -eq 4 -a $cc_vers_minor -ge 3; then if test $cc_vers_major -ge 5 -o $cc_vers_major -eq 4 -a $cc_vers_minor -ge 3; then
H5_CFLAGS="$H5_CFLAGS $(load_gnu_arguments 4.3)" H5_CFLAGS="$H5_CFLAGS $(load_gnu_arguments 4.3)"
fi fi
# gcc >= 4.4 # gcc >= 4.4
if test $cc_vers_major -ge 5 -o $cc_vers_major -eq 4 -a $cc_vers_minor -ge 4; then if test $cc_vers_major -ge 5 -o $cc_vers_major -eq 4 -a $cc_vers_minor -ge 4; then
@ -246,29 +246,29 @@ if test "X-gcc" = "X-$cc_vendor"; then
# gcc >= 4.5 # gcc >= 4.5
if test $cc_vers_major -ge 5 -o $cc_vers_major -eq 4 -a $cc_vers_minor -ge 5; then if test $cc_vers_major -ge 5 -o $cc_vers_major -eq 4 -a $cc_vers_minor -ge 5; then
H5_CFLAGS="$H5_CFLAGS $(load_gnu_arguments 4.5)" H5_CFLAGS="$H5_CFLAGS $(load_gnu_arguments 4.5)"
DEVELOPER_WARNING_CFLAGS="$DEVELOPER_WARNING_CFLAGS $(load_gnu_arguments developer-4.5)" DEVELOPER_WARNING_CFLAGS="$DEVELOPER_WARNING_CFLAGS $(load_gnu_arguments developer-4.5)"
NO_DEVELOPER_WARNING_CFLAGS="$NO_DEVELOPER_WARNING_CFLAGS $(load_gnu_arguments no-developer-4.5)" NO_DEVELOPER_WARNING_CFLAGS="$NO_DEVELOPER_WARNING_CFLAGS $(load_gnu_arguments no-developer-4.5)"
fi fi
# gcc >= 4.6 # gcc >= 4.6
if test $cc_vers_major -ge 5 -o $cc_vers_major -eq 4 -a $cc_vers_minor -ge 6; then if test $cc_vers_major -ge 5 -o $cc_vers_major -eq 4 -a $cc_vers_minor -ge 6; then
H5_CFLAGS="$H5_CFLAGS $(load_gnu_arguments 4.6)" H5_CFLAGS="$H5_CFLAGS $(load_gnu_arguments 4.6)"
DEVELOPER_WARNING_CFLAGS="$DEVELOPER_WARNING_CFLAGS $(load_gnu_arguments developer-4.6)" DEVELOPER_WARNING_CFLAGS="$DEVELOPER_WARNING_CFLAGS $(load_gnu_arguments developer-4.6)"
NO_DEVELOPER_WARNING_CFLAGS="$NO_DEVELOPER_WARNING_CFLAGS $(load_gnu_arguments no-developer-4.6)" NO_DEVELOPER_WARNING_CFLAGS="$NO_DEVELOPER_WARNING_CFLAGS $(load_gnu_arguments no-developer-4.6)"
fi fi
# gcc >= 4.7 # gcc >= 4.7
if test $cc_vers_major -ge 5 -o $cc_vers_major -eq 4 -a $cc_vers_minor -ge 7; then if test $cc_vers_major -ge 5 -o $cc_vers_major -eq 4 -a $cc_vers_minor -ge 7; then
H5_CFLAGS="$H5_CFLAGS $(load_gnu_arguments 4.7)" H5_CFLAGS="$H5_CFLAGS $(load_gnu_arguments 4.7)"
DEVELOPER_WARNING_CFLAGS="$DEVELOPER_WARNING_CFLAGS $(load_gnu_arguments developer-4.7)" DEVELOPER_WARNING_CFLAGS="$DEVELOPER_WARNING_CFLAGS $(load_gnu_arguments developer-4.7)"
NO_DEVELOPER_WARNING_CFLAGS="$NO_DEVELOPER_WARNING_CFLAGS $(load_gnu_arguments no-developer-4.7)" NO_DEVELOPER_WARNING_CFLAGS="$NO_DEVELOPER_WARNING_CFLAGS $(load_gnu_arguments no-developer-4.7)"
fi fi
# gcc >= 4.8 # gcc >= 4.8
if test $cc_vers_major -ge 5 -o $cc_vers_major -eq 4 -a $cc_vers_minor -ge 8; then if test $cc_vers_major -ge 5 -o $cc_vers_major -eq 4 -a $cc_vers_minor -ge 8; then
H5_CFLAGS="$H5_CFLAGS $(load_gnu_arguments 4.8)" H5_CFLAGS="$H5_CFLAGS $(load_gnu_arguments 4.8)"
DEVELOPER_WARNING_CFLAGS="$DEVELOPER_WARNING_CFLAGS $(load_gnu_arguments developer-4.8)" DEVELOPER_WARNING_CFLAGS="$DEVELOPER_WARNING_CFLAGS $(load_gnu_arguments developer-4.8)"
NO_DEVELOPER_WARNING_CFLAGS="$NO_DEVELOPER_WARNING_CFLAGS $(load_gnu_arguments no-developer-4.8)" NO_DEVELOPER_WARNING_CFLAGS="$NO_DEVELOPER_WARNING_CFLAGS $(load_gnu_arguments no-developer-4.8)"
fi fi
# gcc >= 4.9 # gcc >= 4.9
@ -290,15 +290,15 @@ if test "X-gcc" = "X-$cc_vendor"; then
# gcc >= 7 # gcc >= 7
if test $cc_vers_major -ge 7; then if test $cc_vers_major -ge 7; then
H5_CFLAGS="$H5_CFLAGS $(load_gnu_arguments 7)" H5_CFLAGS="$H5_CFLAGS $(load_gnu_arguments 7)"
DEVELOPER_WARNING_CFLAGS="$DEVELOPER_WARNING_CFLAGS $(load_gnu_arguments developer-7)" DEVELOPER_WARNING_CFLAGS="$DEVELOPER_WARNING_CFLAGS $(load_gnu_arguments developer-7)"
fi fi
# gcc 8 # gcc 8
if test $cc_vers_major -ge 8; then if test $cc_vers_major -ge 8; then
H5_CFLAGS="$H5_CFLAGS $(load_gnu_arguments 8)" H5_CFLAGS="$H5_CFLAGS $(load_gnu_arguments 8)"
H5_ECFLAGS="$H5_ECFLAGS $(load_gnu_arguments error-8)" H5_ECFLAGS="$H5_ECFLAGS $(load_gnu_arguments error-8)"
DEVELOPER_WARNING_CFLAGS="$DEVELOPER_WARNING_CFLAGS $(load_gnu_arguments developer-8)" DEVELOPER_WARNING_CFLAGS="$DEVELOPER_WARNING_CFLAGS $(load_gnu_arguments developer-8)"
NO_DEVELOPER_WARNING_CFLAGS="$NO_DEVELOPER_WARNING_CFLAGS $(load_gnu_arguments no-developer-8)" NO_DEVELOPER_WARNING_CFLAGS="$NO_DEVELOPER_WARNING_CFLAGS $(load_gnu_arguments no-developer-8)"
fi fi
# gcc 9 # gcc 9

View File

@ -0,0 +1 @@
-Warray-bounds=2

View File

@ -0,0 +1,11 @@
#
# In GCC 4.4.7, the compiler gripes about shadowed global
# declarations when a local variable uses the name of a
# function that's in a system header file. For some reason,
# later versions of GCC (e.g., 5.2.0) don't complain about
# the shadowed globals. Maybe later versions are less fussy?
# Anyway, the shadowing seems to be harmless, and GCC 4.4.7
# is not a supported compiler, so let us promote shadowed globals
# warnings to errors only for GCC 5 and later.
#
-Werror=shadow

View File

@ -0,0 +1,32 @@
#
# HDF5 code should not trigger the following warnings under any
# circumstances, so ask the compiler to treat them as errors:
#
# NOTE: c++/test files are not compatible with these warnings as errors
# c++/test/tcompound.cpp
# -Werror=cast-align
-Wcast-align
# NOTE: c++/src files are not compatible with these warnings as errors
# c++/src/H5Object.cpp
# -Werror=missing-declarations
-Wmissing-declarations
-Werror=packed
-Werror=redundant-decls
-Werror=switch
# NOTE: c++/test files are not compatible with these warnings as errors
# c++/test/tattr.cpp
# -Werror=unused-but-set-variable
-Wunused-but-set-variable
-Werror=unused-function
-Werror=unused-variable
# NOTE: c++/src files are not compatible with these warnings as errors
# c++/src/H5Object.cpp,c++/src/H5StrType.cpp,c++/src/H5PredType.cpp
# -Werror=unused-parameter
-Wunused-parameter
#
# Other files not compatible
# NOTE: c++/test files are not compatible with these warnings as errors
# c++/test/titerate.cpp,c++/test/tarray.cpp
# -Werror=missing-declarations
# c++/test/titerate.cpp,c++/test/tarray.cpp,c++/test/tlinks.cpp,c++/test/ttypes.cpp,c++/test/dsets.cpp
# -Werror=unused-parameter

View File

@ -6,14 +6,26 @@
# NOTE: Don't add -Wpadded here since we can't/won't fix the (many) # 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 from the # warnings that are emitted. If you need it, add it from the
# environment variable at configure time. # environment variable at configure time.
-Wabi -Wall
-Wcast-qual
-Wconversion
-Wctor-dtor-privacy -Wctor-dtor-privacy
-Weffc++ -Weffc++
##-Wendif-labels -Wextra
-Wfloat-equal
-Wformat=2
-Winit-self
-Winvalid-pch
-Wmissing-include-dirs
-Wno-format-nonliteral
-Wnon-virtual-dtor -Wnon-virtual-dtor
-Wold-style-cast -Wold-style-cast
-Woverloaded-virtual -Woverloaded-virtual
-Wreorder -Wreorder
-Wshadow
-Wsign-promo -Wsign-promo
##-Wunreachable-code ##-Wunreachable-code
-Wundef
##-Wvariadic-macros ##-Wvariadic-macros
-Wwrite-strings
-pedantic

View File

@ -1,4 +1,7 @@
-Werror=cast-function-type # NOTE: src/ files are not compatible with these warnings as errors
# src/H5Dchunk.c
# -Werror=cast-function-type
-Wcast-function-type
# #
# For GCC 8, promote maybe-initialized warnings to an error. GCC 8 # For GCC 8, promote maybe-initialized warnings to an error. GCC 8
# reports 0 maybe-uninitialized warnings where earlier versions # reports 0 maybe-uninitialized warnings where earlier versions
@ -6,4 +9,17 @@
# in order to detect initializations that occur there. It's possible # in order to detect initializations that occur there. It's possible
# that GCC 8 only performs that analysis at -O3, though. # that GCC 8 only performs that analysis at -O3, though.
# #
-Werror=maybe-uninitialized #
# NOTE: File Driver files are not compatible with these warnings as errors
# H5FDlog.c,
# -Werror=maybe-uninitialized
-Wmaybe-uninitialized
# NOTE: src/ files are not compatible with these warnings as errors
# src/H5Shyper.c,src/H5SL.c,src/H5Shyper.c
# -Werror=maybe-uninitialized
# NOTE: Test files are not compatible with these warnings as errors
# test/cache_common.c,
# -Werror=maybe-uninitialized
# NOTE: hl/src/ files are not compatible with these warnings as errors
# hl/src/H5DS.c,
# -Werror=maybe-uninitialized