Merge branch 'develop' into compat_feature_flag

This commit is contained in:
Dana Robinson 2017-05-26 17:29:52 -04:00
commit 343b53d64f
40 changed files with 398 additions and 878 deletions

View File

@ -34,8 +34,8 @@ fi
if test "X-" = "X-$FC"; then
case $CC_BASENAME in
gcc*|pgcc*)
FC=gfortran40
FC_BASENAME=gfortran40
FC=gfortran
FC_BASENAME=gfortran
;;
icc*)
FC=ifort

View File

@ -71,7 +71,7 @@ if test "X-gfortran" = "X-$f9x_vendor"; then
#esac
# General
FC_BASENAME=gfortran40
FC_BASENAME=gfortran
F9XSUFFIXFLAG=""
FSEARCH_DIRS=""
H5_FCFLAGS="$H5_FCFLAGS -pedantic -Wall -Wextra -Wunderflow -Wimplicit-interface -Wsurprising"

View File

@ -91,13 +91,27 @@ case "$cc_vendor-$cc_version" in
;;
esac
# General
H5_CFLAGS="$H5_CFLAGS $arch -std=c99 -pedantic -Wall -W -Wundef -Wshadow -Wpointer-arith -Wbad-function-cast -Wcast-qual -Wcast-align -Wwrite-strings -Wconversion -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wredundant-decls -Wnested-externs"
# General flags
#
# Note that some of the flags listed here really should be developer
# flags (listed in a separate variable, below) but we put them here
# because they are not raised by the current code and we'd like to
# know if they do start showing up.
#
# 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
# environment variable at configure time.
H5_CFLAGS="$H5_CFLAGS $arch -std=c99 -pedantic -Wall -Wextra -Wbad-function-cast -Wc++-compat -Wcast-align"
H5_CFLAGS="$H5_CFLAGS -Wcast-qual -Wconversion -Wdeclaration-after-statement -Wdisabled-optimization -Wfloat-equal"
H5_CFLAGS="$H5_CFLAGS -Wformat=2 -Winit-self -Winvalid-pch -Wmissing-declarations -Wmissing-include-dirs"
H5_CFLAGS="$H5_CFLAGS -Wmissing-prototypes -Wnested-externs -Wold-style-definition -Wpacked -Wpointer-arith"
H5_CFLAGS="$H5_CFLAGS -Wredundant-decls -Wshadow -Wstrict-prototypes -Wswitch-default -Wswitch-enum"
H5_CFLAGS="$H5_CFLAGS -Wundef -Wunused-macros -Wunsafe-loop-optimizations -Wwrite-strings"
# Production
# NDEBUG is handled explicitly by the configure script
case "$cc_vendor-$cc_version" in
gcc-[34].*)
gcc-4.*)
PROD_CFLAGS=
;;
gcc-[56].*)
@ -112,7 +126,7 @@ case "$cc_vendor-$cc_version" in
# Debug
# NDEBUG is handled explicitly by the configure script
# -g is hanled by the symbols flags
# -g is handled by the symbols flags
case "$cc_vendor-$cc_version" in
gcc-[56].*)
DEBUG_CFLAGS="-ftrapv -fno-common"
@ -121,11 +135,10 @@ case "$cc_vendor-$cc_version" in
DEBUG_CFLAGS=
;;
esac
#DEBUG_CFLAGS="-fsanitize=undefined"
# Developer warnings (suggestions from gcc, not code problems)
DEVELOPER_WARNING_CFLAGS="-Winline -Waggregate-return"
NO_DEVELOPER_WARNING_CFLAGS="-Wno-inline -Wno-aggregate-return"
DEVELOPER_WARNING_CFLAGS="-Winline -Waggregate-return -Wmissing-format-attribute -Wmissing-noreturn"
NO_DEVELOPER_WARNING_CFLAGS="-Wno-inline -Wno-aggregate-return -Wno-missing-format-attribute -Wno-missing-noreturn"
# Symbols
NO_SYMBOLS_CFLAGS="-s"
@ -136,7 +149,7 @@ case "$cc_vendor-$cc_version" in
# Optimization
case "$cc_vendor-$cc_version" in
gcc-[34].*)
gcc-4.*)
HIGH_OPT_CFLAGS="-O3"
DEBUG_OPT_CFLAGS=
;;
@ -151,10 +164,6 @@ case "$cc_vendor-$cc_version" in
esac
NO_OPT_CFLAGS="-O0"
# Try out the new "stack protector" feature introduced in gcc 4.1
# (We should also think about adding some of the other memory protection options)
#DEBUG_CFLAGS="$DEBUG_CFLAGS -Wstack-protector -fstack-protector-all"
# Flags are set
cc_flags_set=yes
;;
@ -170,375 +179,169 @@ case "$cc_vendor-$cc_version" in
# include and break it out into it's own section, like the other versions
# below. -QAK
gcc-6*)
# Append warning flags
# Don't use the '-Wtraditional' flag, we're way past having K&R C code
# H5_CFLAGS="$H5_CFLAGS -Wtraditional"
# Don't use the '-Wtraditional-conversion' flag, there's too many warnings
# from GCC's assert macro
# H5_CFLAGS="$H5_CFLAGS -Wtraditional-conversion"
# Append warning flags from gcc-3* case
# (don't use -Wpadded flag for normal builds, many of the warnings its
# issuing can't be fixed and they are making it hard to detect other,
# more important warnings)
#H5_CFLAGS="$H5_CFLAGS -Wfloat-equal -Wmissing-format-attribute -Wpadded"
H5_CFLAGS="$H5_CFLAGS -Wfloat-equal -Wmissing-format-attribute"
# Append warning flags from gcc-3.2* case
H5_CFLAGS="$H5_CFLAGS -Wpacked -Wdisabled-optimization"
DEVELOPER_WARNING_CFLAGS="$DEVELOPER_WARNING_CFLAGS -Wmissing-noreturn"
NO_DEVELOPER_WARNING_CFLAGS="$NO_DEVELOPER_WARNING_CFLAGS -Wno-missing-noreturn"
# Enable more format checking flags, beyond the basic -Wformat included
# in -Wall
H5_CFLAGS="$H5_CFLAGS -Wformat=2"
# The "unreachable code" warning appears to be reliable now...
H5_CFLAGS="$H5_CFLAGS -Wunreachable-code"
# Append warning flags from gcc-3.3* case
H5_CFLAGS="$H5_CFLAGS -Wendif-labels"
# Append warning flags from gcc-3.4* case
H5_CFLAGS="$H5_CFLAGS -Wdeclaration-after-statement -Wold-style-definition -Winvalid-pch"
# Replace old -W flag with new -Wextra flag
H5_CFLAGS="`echo $H5_CFLAGS | sed -e 's/-W\ /-Wextra\ /g'`"
# Append more extra warning flags that only gcc4.0+ know about
H5_CFLAGS="$H5_CFLAGS -Wvariadic-macros -Winit-self -Wmissing-include-dirs -Wswitch-default -Wswitch-enum -Wunused-macros"
# Append more extra warning flags that only gcc 4.1+ know about
H5_CFLAGS="$H5_CFLAGS -Wunsafe-loop-optimizations -Wc++-compat -Wnormalized"
# Append more extra warning flags that only gcc 4.2+ know about
# Append warning flags that only gcc 4.2+ knows about
# (none, or incorporated in -Wall / -Wextra now)
# Append more extra warning flags that only gcc 4.3+ know about
# Append warning flags that only gcc 4.3+ knows about
#
# Technically, variable-length arrays are part of the C99 standard, but
# we should approach them a bit cautiously... -QAK
H5_CFLAGS="$H5_CFLAGS -Wlogical-op -Wlarger-than=2048 -Wvla"
# Append more extra warning flags that only gcc 4.4+ know about
# Append warning flags that only gcc 4.4+ knows about
H5_CFLAGS="$H5_CFLAGS -Wsync-nand -Wframe-larger-than=16384 -Wpacked-bitfield-compat"
# Append more extra warning flags that only gcc 4.5+ know about
# Append warning flags that only gcc 4.5+ knows about
H5_CFLAGS="$H5_CFLAGS -Wstrict-overflow=5 -Wjump-misses-init -Wunsuffixed-float-constants"
# Append more extra warning flags that only gcc 4.6+ know about
# Append warning flags that only gcc 4.6+ knows about
H5_CFLAGS="$H5_CFLAGS -Wdouble-promotion -Wtrampolines"
DEVELOPER_WARNING_CFLAGS="$DEVELOPER_WARNING_CFLAGS -Wsuggest-attribute=const"
NO_DEVELOPER_WARNING_CFLAGS="$NO_DEVELOPER_WARNING_CFLAGS -Wno-suggest-attribute=const"
# Append more extra warning flags that only gcc 4.7+ know about
# Append warning flags that only gcc 4.7+ knows about
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"
# Append more extra warning flags that only gcc 4.8+ know about
# Append warning flags that only gcc 4.8+ knows about
DEVELOPER_WARNING_CFLAGS="$DEVELOPER_WARNING_CFLAGS -Wsuggest-attribute=format"
NO_DEVELOPER_WARNING_CFLAGS="$NO_DEVELOPER_WARNING_CFLAGS -Wno-suggest-attribute=format"
# Append more extra warning flags that only gcc 4.9+ know about
# Append warning flags that only gcc 4.9+ knows about
H5_CFLAGS="$H5_CFLAGS -Wdate-time"
# Append more extra warning flags that only gcc 5.x+ know about
# Append warning flags that only gcc 5.x+ knows about
H5_CFLAGS="$H5_CFLAGS -Warray-bounds=2 -Wc99-c11-compat"
# Append more extra warning flags that only gcc 6.x+ know about
# Append warning flags that only gcc 6.x+ knows about
H5_CFLAGS="$H5_CFLAGS -Wnull-dereference -Wunused-const-variable -Wduplicated-cond -Whsa"
;;
gcc-5*)
# Append warning flags
# Don't use the '-Wtraditional' flag, we're way past having K&R C code
# H5_CFLAGS="$H5_CFLAGS -Wtraditional"
# Don't use the '-Wtraditional-conversion' flag, there's too many warnings
# from GCC's assert macro
# H5_CFLAGS="$H5_CFLAGS -Wtraditional-conversion"
# Append warning flags from gcc-3* case
# (don't use -Wpadded flag for normal builds, many of the warnings its
# issuing can't be fixed and they are making it hard to detect other,
# more important warnings)
#H5_CFLAGS="$H5_CFLAGS -Wfloat-equal -Wmissing-format-attribute -Wpadded"
H5_CFLAGS="$H5_CFLAGS -Wfloat-equal -Wmissing-format-attribute"
# Append warning flags from gcc-3.2* case
H5_CFLAGS="$H5_CFLAGS -Wpacked -Wdisabled-optimization"
DEVELOPER_WARNING_CFLAGS="$DEVELOPER_WARNING_CFLAGS -Wmissing-noreturn"
NO_DEVELOPER_WARNING_CFLAGS="$NO_DEVELOPER_WARNING_CFLAGS -Wno-missing-noreturn"
# Enable more format checking flags, beyond the basic -Wformat included
# in -Wall
H5_CFLAGS="$H5_CFLAGS -Wformat=2"
# The "unreachable code" warning appears to be reliable now...
H5_CFLAGS="$H5_CFLAGS -Wunreachable-code"
# Append warning flags from gcc-3.3* case
H5_CFLAGS="$H5_CFLAGS -Wendif-labels"
# Append warning flags from gcc-3.4* case
H5_CFLAGS="$H5_CFLAGS -Wdeclaration-after-statement -Wold-style-definition -Winvalid-pch"
# Replace old -W flag with new -Wextra flag
H5_CFLAGS="`echo $H5_CFLAGS | sed -e 's/-W\ /-Wextra\ /g'`"
# Append more extra warning flags that only gcc4.0+ know about
H5_CFLAGS="$H5_CFLAGS -Wvariadic-macros -Winit-self -Wmissing-include-dirs -Wswitch-default -Wswitch-enum -Wunused-macros"
# Append more extra warning flags that only gcc 4.1+ know about
H5_CFLAGS="$H5_CFLAGS -Wunsafe-loop-optimizations -Wc++-compat -Wnormalized"
# Append more extra warning flags that only gcc 4.2+ know about
# Append warning flags that only gcc 4.2+ knows about
# (none, or incorporated in -Wall / -Wextra now)
# Append more extra warning flags that only gcc 4.3+ know about
# Append warning flags that only gcc 4.3+ knows about
#
# Technically, variable-length arrays are part of the C99 standard, but
# we should approach them a bit cautiously... -QAK
H5_CFLAGS="$H5_CFLAGS -Wlogical-op -Wlarger-than=2048 -Wvla"
# Append more extra warning flags that only gcc 4.4+ know about
# Append warning flags that only gcc 4.4+ knows about
H5_CFLAGS="$H5_CFLAGS -Wsync-nand -Wframe-larger-than=16384 -Wpacked-bitfield-compat"
# Append more extra warning flags that only gcc 4.5+ know about
# Append warning flags that only gcc 4.5+ knows about
H5_CFLAGS="$H5_CFLAGS -Wstrict-overflow=5 -Wjump-misses-init -Wunsuffixed-float-constants"
# Append more extra warning flags that only gcc 4.6+ know about
# Append warning flags that only gcc 4.6+ knows about
H5_CFLAGS="$H5_CFLAGS -Wdouble-promotion -Wtrampolines"
DEVELOPER_WARNING_CFLAGS="$DEVELOPER_WARNING_CFLAGS -Wsuggest-attribute=const"
NO_DEVELOPER_WARNING_CFLAGS="$NO_DEVELOPER_WARNING_CFLAGS -Wno-suggest-attribute=const"
# Append more extra warning flags that only gcc 4.7+ know about
# Append warning flags that only gcc 4.7+ knows about
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"
# Append more extra warning flags that only gcc 4.8+ know about
# Append warning flags that only gcc 4.8+ knows about
DEVELOPER_WARNING_CFLAGS="$DEVELOPER_WARNING_CFLAGS -Wsuggest-attribute=format"
NO_DEVELOPER_WARNING_CFLAGS="$NO_DEVELOPER_WARNING_CFLAGS -Wno-suggest-attribute=format"
# Append more extra warning flags that only gcc 4.9+ know about
# Append warning flags that only gcc 4.9+ knows about
H5_CFLAGS="$H5_CFLAGS -Wdate-time"
# Append more extra warning flags that only gcc 5.x+ know about
# Append warning flags that only gcc 5.x+ knows about
H5_CFLAGS="$H5_CFLAGS -Warray-bounds=2 -Wc99-c11-compat"
;;
gcc-4.9*)
# Append warning flags
# Don't use the '-Wtraditional' flag, we're way past having K&R C code
# H5_CFLAGS="$H5_CFLAGS -Wtraditional"
# Don't use the '-Wtraditional-conversion' flag, there's too many warnings
# from GCC's assert macro
# H5_CFLAGS="$H5_CFLAGS -Wtraditional-conversion"
# Append warning flags from gcc-3* case
# (don't use -Wpadded flag for normal builds, many of the warnings its
# issuing can't be fixed and they are making it hard to detect other,
# more important warnings)
#H5_CFLAGS="$H5_CFLAGS -Wfloat-equal -Wmissing-format-attribute -Wpadded"
H5_CFLAGS="$H5_CFLAGS -Wfloat-equal -Wmissing-format-attribute"
# Append warning flags from gcc-3.2* case
H5_CFLAGS="$H5_CFLAGS -Wpacked -Wdisabled-optimization"
DEVELOPER_WARNING_CFLAGS="$DEVELOPER_WARNING_CFLAGS -Wmissing-noreturn"
NO_DEVELOPER_WARNING_CFLAGS="$NO_DEVELOPER_WARNING_CFLAGS -Wno-missing-noreturn"
# Enable more format checking flags, beyond the basic -Wformat included
# in -Wall
H5_CFLAGS="$H5_CFLAGS -Wformat=2"
# The "unreachable code" warning appears to be reliable now...
H5_CFLAGS="$H5_CFLAGS -Wunreachable-code"
# Append warning flags from gcc-3.3* case
H5_CFLAGS="$H5_CFLAGS -Wendif-labels"
# Append warning flags from gcc-3.4* case
H5_CFLAGS="$H5_CFLAGS -Wdeclaration-after-statement -Wold-style-definition -Winvalid-pch"
# Replace old -W flag with new -Wextra flag
H5_CFLAGS="`echo $H5_CFLAGS | sed -e 's/-W\ /-Wextra\ /g'`"
# Append more extra warning flags that only gcc4.0+ know about
H5_CFLAGS="$H5_CFLAGS -Wvariadic-macros -Winit-self -Wmissing-include-dirs -Wswitch-default -Wswitch-enum -Wunused-macros"
# Append more extra warning flags that only gcc 4.1+ know about
H5_CFLAGS="$H5_CFLAGS -Wunsafe-loop-optimizations -Wc++-compat"
# Append more extra warning flags that only gcc 4.2+ know about
# Append warning flags that only gcc 4.2+ knows about
# (none, or incorporated in -Wall / -Wextra now)
# Append more extra warning flags that only gcc 4.3+ know about
# Append warning flags that only gcc 4.3+ knows about
#
# Technically, variable-length arrays are part of the C99 standard, but
# we should approach them a bit cautiously... -QAK
H5_CFLAGS="$H5_CFLAGS -Wlogical-op -Wlarger-than=2048 -Wvla"
# Append more extra warning flags that only gcc 4.4+ know about
# Append warning flags that only gcc 4.4+ knows about
H5_CFLAGS="$H5_CFLAGS -Wsync-nand -Wframe-larger-than=16384 -Wpacked-bitfield-compat"
# Append more extra warning flags that only gcc 4.5+ know about
# Append warning flags that only gcc 4.5+ knows about
H5_CFLAGS="$H5_CFLAGS -Wstrict-overflow=5 -Wjump-misses-init -Wunsuffixed-float-constants"
# Append more extra warning flags that only gcc 4.6+ know about
# Append warning flags that only gcc 4.6+ knows about
H5_CFLAGS="$H5_CFLAGS -Wdouble-promotion -Wtrampolines"
DEVELOPER_WARNING_CFLAGS="$DEVELOPER_WARNING_CFLAGS -Wsuggest-attribute=const"
NO_DEVELOPER_WARNING_CFLAGS="$NO_DEVELOPER_WARNING_CFLAGS -Wno-suggest-attribute=const"
# Append more extra warning flags that only gcc 4.7+ know about
# Append warning flags that only gcc 4.7+ knows about
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"
# Append more extra warning flags that only gcc 4.8+ know about
# Append warning flags that only gcc 4.8+ knows about
DEVELOPER_WARNING_CFLAGS="$DEVELOPER_WARNING_CFLAGS -Wsuggest-attribute=format"
NO_DEVELOPER_WARNING_CFLAGS="$NO_DEVELOPER_WARNING_CFLAGS -Wno-suggest-attribute=format"
# Append more extra warning flags that only gcc 4.9+ know about
# Append warning flags that only gcc 4.9+ knows about
H5_CFLAGS="$H5_CFLAGS -Wdate-time"
;;
gcc-4.8*)
# Append warning flags
# Don't use the '-Wtraditional' flag, we're way past having K&R C code
# H5_CFLAGS="$H5_CFLAGS -Wtraditional"
# Don't use the '-Wtraditional-conversion' flag, there's too many warnings
# from GCC's assert macro
# H5_CFLAGS="$H5_CFLAGS -Wtraditional-conversion"
# Append warning flags from gcc-3* case
# (don't use -Wpadded flag for normal builds, many of the warnings its
# issuing can't be fixed and they are making it hard to detect other,
# more important warnings)
#H5_CFLAGS="$H5_CFLAGS -Wfloat-equal -Wmissing-format-attribute -Wpadded"
H5_CFLAGS="$H5_CFLAGS -Wfloat-equal -Wmissing-format-attribute"
# Append warning flags from gcc-3.2* case
H5_CFLAGS="$H5_CFLAGS -Wpacked -Wdisabled-optimization"
DEVELOPER_WARNING_CFLAGS="$DEVELOPER_WARNING_CFLAGS -Wmissing-noreturn"
NO_DEVELOPER_WARNING_CFLAGS="$NO_DEVELOPER_WARNING_CFLAGS -Wno-missing-noreturn"
# Enable more format checking flags, beyond the basic -Wformat included
# in -Wall
H5_CFLAGS="$H5_CFLAGS -Wformat=2"
# The "unreachable code" warning appears to be reliable now...
H5_CFLAGS="$H5_CFLAGS -Wunreachable-code"
# Append warning flags from gcc-3.3* case
H5_CFLAGS="$H5_CFLAGS -Wendif-labels"
# Append warning flags from gcc-3.4* case
H5_CFLAGS="$H5_CFLAGS -Wdeclaration-after-statement -Wold-style-definition -Winvalid-pch"
# Replace old -W flag with new -Wextra flag
H5_CFLAGS="`echo $H5_CFLAGS | sed -e 's/-W\ /-Wextra\ /g'`"
# Append more extra warning flags that only gcc4.0+ know about
H5_CFLAGS="$H5_CFLAGS -Wvariadic-macros -Winit-self -Wmissing-include-dirs -Wswitch-default -Wswitch-enum -Wunused-macros"
# Append more extra warning flags that only gcc 4.1+ know about
H5_CFLAGS="$H5_CFLAGS -Wunsafe-loop-optimizations -Wc++-compat"
# Append more extra warning flags that only gcc 4.2+ know about
# Append warning flags that only gcc 4.2+ knows about
# (none, or incorporated in -Wall / -Wextra now)
# Append more extra warning flags that only gcc 4.3+ know about
# Append warning flags that only gcc 4.3+ knows about
#
# Technically, variable-length arrays are part of the C99 standard, but
# we should approach them a bit cautiously... -QAK
H5_CFLAGS="$H5_CFLAGS -Wlogical-op -Wlarger-than=2048 -Wvla"
# Append more extra warning flags that only gcc 4.4+ know about
# Append warning flags that only gcc 4.4+ knows about
H5_CFLAGS="$H5_CFLAGS -Wsync-nand -Wframe-larger-than=16384 -Wpacked-bitfield-compat"
# Append more extra warning flags that only gcc 4.5+ know about
# Append warning flags that only gcc 4.5+ knows about
H5_CFLAGS="$H5_CFLAGS -Wstrict-overflow=5 -Wjump-misses-init"
# Append more extra warning flags that only gcc 4.6+ know about
# Append warning flags that only gcc 4.6+ knows about
H5_CFLAGS="$H5_CFLAGS -Wdouble-promotion -Wtrampolines"
DEVELOPER_WARNING_CFLAGS="$DEVELOPER_WARNING_CFLAGS -Wsuggest-attribute=const"
NO_DEVELOPER_WARNING_CFLAGS="$NO_DEVELOPER_WARNING_CFLAGS -Wno-suggest-attribute=const"
# Append more extra warning flags that only gcc 4.7+ know about
# Append warning flags that only gcc 4.7+ knows about
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"
# Append more extra warning flags that only gcc 4.8+ know about
# Append warning flags that only gcc 4.8+ knows about
DEVELOPER_WARNING_CFLAGS="$DEVELOPER_WARNING_CFLAGS -Wsuggest-attribute=format"
NO_DEVELOPER_WARNING_CFLAGS="$NO_DEVELOPER_WARNING_CFLAGS -Wno-suggest-attribute=format"
;;
gcc-4.7*)
# Append warning flags
# Don't use the '-Wtraditional' flag, we're way past having K&R C code
# H5_CFLAGS="$H5_CFLAGS -Wtraditional"
# Don't use the '-Wtraditional-conversion' flag, there's too many warnings
# from GCC's assert macro
# H5_CFLAGS="$H5_CFLAGS -Wtraditional-conversion"
# Append warning flags from gcc-3* case
# (don't use -Wpadded flag for normal builds, many of the warnings its
# issuing can't be fixed and they are making it hard to detect other,
# more important warnings)
#H5_CFLAGS="$H5_CFLAGS -Wfloat-equal -Wmissing-format-attribute -Wpadded"
H5_CFLAGS="$H5_CFLAGS -Wfloat-equal -Wmissing-format-attribute"
# Append warning flags from gcc-3.2* case
H5_CFLAGS="$H5_CFLAGS -Wpacked -Wdisabled-optimization"
DEVELOPER_WARNING_CFLAGS="$DEVELOPER_WARNING_CFLAGS -Wmissing-noreturn"
NO_DEVELOPER_WARNING_CFLAGS="$NO_DEVELOPER_WARNING_CFLAGS -Wno-missing-noreturn"
# Enable more format checking flags, beyond the basic -Wformat included
# in -Wall
H5_CFLAGS="$H5_CFLAGS -Wformat=2"
# The "unreachable code" warning appears to be reliable now...
# (this warning was removed in gcc 4.5+)
#H5_CFLAGS="$H5_CFLAGS -Wunreachable-code"
# Append warning flags from gcc-3.3* case
H5_CFLAGS="$H5_CFLAGS -Wendif-labels"
# Append warning flags from gcc-3.4* case
H5_CFLAGS="$H5_CFLAGS -Wdeclaration-after-statement -Wold-style-definition -Winvalid-pch"
# Replace old -W flag with new -Wextra flag
H5_CFLAGS="`echo $H5_CFLAGS | sed -e 's/-W\ /-Wextra\ /g'`"
# Append more extra warning flags that only gcc4.0+ know about
H5_CFLAGS="$H5_CFLAGS -Wvariadic-macros -Winit-self -Wmissing-include-dirs -Wswitch-default -Wswitch-enum -Wunused-macros"
# Append more extra warning flags that only gcc 4.1+ know about
H5_CFLAGS="$H5_CFLAGS -Wunsafe-loop-optimizations -Wc++-compat"
# Append more extra warning flags that only gcc 4.2+ know about
# Append warning flags that only gcc 4.2+ knows about
# (none, or incorporated in -Wall / -Wextra now)
# Append more extra warning flags that only gcc 4.3+ know about
# Append warning flags that only gcc 4.3+ knows about
#
# Technically, variable-length arrays are part of the C99 standard, but
# we should approach them a bit cautiously... -QAK
H5_CFLAGS="$H5_CFLAGS -Wlogical-op -Wlarger-than=2048 -Wvla"
# Append more extra warning flags that only gcc 4.4+ know about
# Append warning flags that only gcc 4.4+ knows about
H5_CFLAGS="$H5_CFLAGS -Wsync-nand -Wframe-larger-than=16384 -Wpacked-bitfield-compat"
# Append more extra warning flags that only gcc 4.5+ know about
# Append warning flags that only gcc 4.5+ knows about
H5_CFLAGS="$H5_CFLAGS -Wstrict-overflow=5 -Wjump-misses-init -Wunsuffixed-float-constants"
# Append more extra warning flags that only gcc 4.6+ know about
# Append warning flags that only gcc 4.6+ knows about
H5_CFLAGS="$H5_CFLAGS -Wdouble-promotion -Wtrampolines"
DEVELOPER_WARNING_CFLAGS="$DEVELOPER_WARNING_CFLAGS -Wsuggest-attribute=const"
NO_DEVELOPER_WARNING_CFLAGS="$NO_DEVELOPER_WARNING_CFLAGS -Wno-suggest-attribute=const"
# Append more extra warning flags that only gcc 4.7+ know about
# Append warning flags that only gcc 4.7+ knows about
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"
@ -548,57 +351,22 @@ case "$cc_vendor-$cc_version" in
# Disable warnings about using 'long long' type
H5_CFLAGS="$H5_CFLAGS -Wno-long-long"
# Append warning flags from gcc-3* case
# (don't use -Wpadded flag for normal builds, many of the warnings its
# issuing can't be fixed and they are making it hard to detect other,
# more important warnings)
#H5_CFLAGS="$H5_CFLAGS -Wfloat-equal -Wmissing-format-attribute -Wpadded"
H5_CFLAGS="$H5_CFLAGS -Wfloat-equal -Wmissing-format-attribute"
# Append warning flags from gcc-3.2* case
H5_CFLAGS="$H5_CFLAGS -Wpacked -Wdisabled-optimization"
DEVELOPER_WARNING_CFLAGS="$DEVELOPER_WARNING_CFLAGS -Wmissing-noreturn"
NO_DEVELOPER_WARNING_CFLAGS="$NO_DEVELOPER_WARNING_CFLAGS -Wno-missing-noreturn"
# Enable more format checking flags, beyond the basic -Wformat included
# in -Wall
H5_CFLAGS="$H5_CFLAGS -Wformat=2"
# The "unreachable code" warning appears to be reliable now...
# (this warning was removed in gcc 4.5+)
#H5_CFLAGS="$H5_CFLAGS -Wunreachable-code"
# Append warning flags from gcc-3.3* case
H5_CFLAGS="$H5_CFLAGS -Wendif-labels"
# Append warning flags from gcc-3.4* case
H5_CFLAGS="$H5_CFLAGS -Wdeclaration-after-statement -Wold-style-definition -Winvalid-pch"
# Replace old -W flag with new -Wextra flag
H5_CFLAGS="`echo $H5_CFLAGS | sed -e 's/-W\ /-Wextra\ /g'`"
# Append more extra warning flags that only gcc4.0+ know about
H5_CFLAGS="$H5_CFLAGS -Wvariadic-macros -Wnonnull -Winit-self -Wmissing-include-dirs -Wswitch-default -Wswitch-enum -Wunused-macros"
# Append more extra warning flags that only gcc 4.1+ know about
H5_CFLAGS="$H5_CFLAGS -Wunsafe-loop-optimizations -Wc++-compat"
# Append more extra warning flags that only gcc 4.2+ know about
# Append warning flags that only gcc 4.2+ knows about
# (none, or incorporated in -Wall / -Wextra now)
# Append more extra warning flags that only gcc 4.3+ know about
# Append warning flags that only gcc 4.3+ knows about
#
# Technically, variable-length arrays are part of the C99 standard, but
# we should approach them a bit cautiously... -QAK
H5_CFLAGS="$H5_CFLAGS -Wlogical-op -Wlarger-than=2048 -Wvla"
# Append more extra warning flags that only gcc 4.4+ know about
# Append warning flags that only gcc 4.4+ knows about
H5_CFLAGS="$H5_CFLAGS -Wsync-nand -Wframe-larger-than=16384 -Wpacked-bitfield-compat"
# Append more extra warning flags that only gcc 4.5+ know about
# Append warning flags that only gcc 4.5+ knows about
H5_CFLAGS="$H5_CFLAGS -Wstrict-aliasing -Wstrict-overflow=5 -Wjump-misses-init -Wunsuffixed-float-constants"
# Append more extra warning flags that only gcc 4.6+ know about
# Append warning flags that only gcc 4.6+ knows about
H5_CFLAGS="$H5_CFLAGS -Wdouble-promotion -Wtrampolines"
DEVELOPER_WARNING_CFLAGS="$DEVELOPER_WARNING_CFLAGS -Wsuggest-attribute=const"
NO_DEVELOPER_WARNING_CFLAGS="$NO_DEVELOPER_WARNING_CFLAGS -Wno-suggest-attribute=const"
@ -608,54 +376,19 @@ case "$cc_vendor-$cc_version" in
# Disable warnings about using 'long long' type
H5_CFLAGS="$H5_CFLAGS -Wno-long-long"
# Append warning flags from gcc-3* case
# (don't use -Wpadded flag for normal builds, many of the warnings its
# issuing can't be fixed and they are making it hard to detect other,
# more important warnings)
#H5_CFLAGS="$H5_CFLAGS -Wfloat-equal -Wmissing-format-attribute -Wpadded"
H5_CFLAGS="$H5_CFLAGS -Wfloat-equal -Wmissing-format-attribute"
# Append warning flags from gcc-3.2* case
H5_CFLAGS="$H5_CFLAGS -Wpacked -Wdisabled-optimization"
DEVELOPER_WARNING_CFLAGS="$DEVELOPER_WARNING_CFLAGS -Wmissing-noreturn"
NO_DEVELOPER_WARNING_CFLAGS="$NO_DEVELOPER_WARNING_CFLAGS -Wno-missing-noreturn"
# Enable more format checking flags, beyond the basic -Wformat included
# in -Wall
H5_CFLAGS="$H5_CFLAGS -Wformat=2"
# The "unreachable code" warning appears to be reliable now...
# (this warning was removed in gcc 4.5+)
#H5_CFLAGS="$H5_CFLAGS -Wunreachable-code"
# Append warning flags from gcc-3.3* case
H5_CFLAGS="$H5_CFLAGS -Wendif-labels"
# Append warning flags from gcc-3.4* case
H5_CFLAGS="$H5_CFLAGS -Wdeclaration-after-statement -Wold-style-definition -Winvalid-pch"
# Replace old -W flag with new -Wextra flag
H5_CFLAGS="`echo $H5_CFLAGS | sed -e 's/-W\ /-Wextra\ /g'`"
# Append more extra warning flags that only gcc4.0+ know about
H5_CFLAGS="$H5_CFLAGS -Wvariadic-macros -Wnonnull -Winit-self -Wmissing-include-dirs -Wswitch-default -Wswitch-enum -Wunused-macros"
# Append more extra warning flags that only gcc 4.1+ know about
H5_CFLAGS="$H5_CFLAGS -Wunsafe-loop-optimizations -Wc++-compat"
# Append more extra warning flags that only gcc 4.2+ know about
# Append warning flags that only gcc 4.2+ knows about
# (none, or incorporated in -Wall / -Wextra now)
# Append more extra warning flags that only gcc 4.3+ know about
# Append warning flags that only gcc 4.3+ knows about
#
# Technically, variable-length arrays are part of the C99 standard, but
# we should approach them a bit cautiously... -QAK
H5_CFLAGS="$H5_CFLAGS -Wlogical-op -Wlarger-than=2048 -Wvla"
# Append more extra warning flags that only gcc 4.4+ know about
# Append warning flags that only gcc 4.4+ knows about
H5_CFLAGS="$H5_CFLAGS -Wsync-nand -Wframe-larger-than=16384 -Wpacked-bitfield-compat"
# Append more extra warning flags that only gcc 4.5+ know about
# Append warning flags that only gcc 4.5+ knows about
H5_CFLAGS="$H5_CFLAGS -Wstrict-aliasing -Wstrict-overflow=5 -Wjump-misses-init -Wunsuffixed-float-constants"
;;
@ -663,50 +396,16 @@ case "$cc_vendor-$cc_version" in
# Disable warnings about using 'long long' type
H5_CFLAGS="$H5_CFLAGS -Wno-long-long"
# Append warning flags from gcc-3* case
# (don't use -Wpadded flag for normal builds, many of the warnings its
# issuing can't be fixed and they are making it hard to detect other,
# more important warnings)
#H5_CFLAGS="$H5_CFLAGS -Wfloat-equal -Wmissing-format-attribute -Wpadded"
H5_CFLAGS="$H5_CFLAGS -Wfloat-equal -Wmissing-format-attribute"
# Append warning flags from gcc-3.2* case
H5_CFLAGS="$H5_CFLAGS -Wpacked -Wdisabled-optimization"
DEVELOPER_WARNING_CFLAGS="$DEVELOPER_WARNING_CFLAGS -Wmissing-noreturn"
NO_DEVELOPER_WARNING_CFLAGS="$NO_DEVELOPER_WARNING_CFLAGS -Wno-missing-noreturn"
# Enable more format checking flags, beyond the basic -Wformat included
# in -Wall
H5_CFLAGS="$H5_CFLAGS -Wformat=2"
# The "unreachable code" warning appears to be reliable now...
H5_CFLAGS="$H5_CFLAGS -Wunreachable-code"
# Append warning flags from gcc-3.3* case
H5_CFLAGS="$H5_CFLAGS -Wendif-labels"
# Append warning flags from gcc-3.4* case
H5_CFLAGS="$H5_CFLAGS -Wdeclaration-after-statement -Wold-style-definition -Winvalid-pch"
# Replace old -W flag with new -Wextra flag
H5_CFLAGS="`echo $H5_CFLAGS | sed -e 's/-W\ /-Wextra\ /g'`"
# Append more extra warning flags that only gcc4.0+ know about
H5_CFLAGS="$H5_CFLAGS -Wvariadic-macros -Wnonnull -Winit-self -Wmissing-include-dirs -Wswitch-default -Wswitch-enum -Wunused-macros"
# Append more extra warning flags that only gcc 4.1+ know about
H5_CFLAGS="$H5_CFLAGS -Wunsafe-loop-optimizations -Wc++-compat"
# Append more extra warning flags that only gcc 4.2+ know about
# Append warning flags that only gcc 4.2+ knows about
H5_CFLAGS="$H5_CFLAGS -Wstrict-overflow"
# Append more extra warning flags that only gcc 4.3+ know about
# Append warning flags that only gcc 4.3+ knows about
#
# Technically, variable-length arrays are part of the C99 standard, but
# we should approach them a bit cautiously... -QAK
H5_CFLAGS="$H5_CFLAGS -Wlogical-op -Wlarger-than=2048 -Wvla"
# Append more extra warning flags that only gcc 4.4+ know about
# Append warning flags that only gcc 4.4+ knows about
H5_CFLAGS="$H5_CFLAGS -Wsync-nand -Wframe-larger-than=16384 -Wpacked-bitfield-compat"
;;
@ -714,44 +413,15 @@ case "$cc_vendor-$cc_version" in
# Disable warnings about using 'long long' type
H5_CFLAGS="$H5_CFLAGS -Wno-long-long"
# Append warning flags from gcc-3* case
# (don't use -Wpadded flag for normal builds, many of the warnings its
# issuing can't be fixed and they are making it hard to detect other,
# more important warnings)
#H5_CFLAGS="$H5_CFLAGS -Wfloat-equal -Wmissing-format-attribute -Wpadded"
H5_CFLAGS="$H5_CFLAGS -Wfloat-equal -Wmissing-format-attribute"
# Append warning flags that only gcc 4.1+ knows about
# -Wvolatile-register-var was later incorporated into -Wall and
# needs to be specified explicitly for gcc 4.1-4.3.
H5_CFLAGS="$H5_CFLAGS -Wvolatile-register-var"
# Append warning flags from gcc-3.2* case
H5_CFLAGS="$H5_CFLAGS -Wpacked -Wdisabled-optimization"
DEVELOPER_WARNING_CFLAGS="$DEVELOPER_WARNING_CFLAGS -Wmissing-noreturn"
NO_DEVELOPER_WARNING_CFLAGS="$NO_DEVELOPER_WARNING_CFLAGS -Wno-missing-noreturn"
# Enable more format checking flags, beyond the basic -Wformat included
# in -Wall
H5_CFLAGS="$H5_CFLAGS -Wformat=2"
# The "unreachable code" warning appears to be reliable now...
H5_CFLAGS="$H5_CFLAGS -Wunreachable-code"
# Append warning flags from gcc-3.3* case
H5_CFLAGS="$H5_CFLAGS -Wendif-labels"
# Append warning flags from gcc-3.4* case
H5_CFLAGS="$H5_CFLAGS -Wdeclaration-after-statement -Wold-style-definition -Winvalid-pch"
# Replace old -W flag with new -Wextra flag
H5_CFLAGS="`echo $H5_CFLAGS | sed -e 's/-W\ /-Wextra\ /g'`"
# Append more extra warning flags that only gcc4.0+ know about
H5_CFLAGS="$H5_CFLAGS -Wvariadic-macros -Wnonnull -Winit-self -Wmissing-include-dirs -Wswitch-default -Wswitch-enum -Wunused-macros"
# Append more extra warning flags that only gcc 4.1+ know about
H5_CFLAGS="$H5_CFLAGS -Wunsafe-loop-optimizations -Wc++-compat -Wvolatile-register-var"
# Append more extra warning flags that only gcc 4.2+ know about
# Append warning flags that only gcc 4.2+ knows about
H5_CFLAGS="$H5_CFLAGS -Wstrict-overflow"
# Append more extra warning flags that only gcc 4.3+ know about
# Append warning flags that only gcc 4.3+ knows about
#
# Technically, variable-length arrays are part of the C99 standard, but
# we should approach them a bit cautiously... -QAK
@ -762,41 +432,12 @@ case "$cc_vendor-$cc_version" in
# Disable warnings about using 'long long' type
H5_CFLAGS="$H5_CFLAGS -Wno-long-long"
# Append warning flags from gcc-3* case
# (don't use -Wpadded flag for normal builds, many of the warnings its
# issuing can't be fixed and they are making it hard to detect other,
# more important warnings)
#H5_CFLAGS="$H5_CFLAGS -Wfloat-equal -Wmissing-format-attribute -Wpadded"
H5_CFLAGS="$H5_CFLAGS -Wfloat-equal -Wmissing-format-attribute"
# Append warning flags that only gcc 4.1+ knows about
# -Wvolatile-register-var was later incorporated into -Wall and
# needs to be specified explicitly for gcc 4.1-4.3.
H5_CFLAGS="$H5_CFLAGS -Wvolatile-register-var"
# Append warning flags from gcc-3.2* case
H5_CFLAGS="$H5_CFLAGS -Wpacked -Wdisabled-optimization"
DEVELOPER_WARNING_CFLAGS="$DEVELOPER_WARNING_CFLAGS -Wmissing-noreturn"
NO_DEVELOPER_WARNING_CFLAGS="$NO_DEVELOPER_WARNING_CFLAGS -Wno-missing-noreturn"
# Enable more format checking flags, beyond the basic -Wformat included
# in -Wall
H5_CFLAGS="$H5_CFLAGS -Wformat=2"
# The "unreachable code" warning does not appear to be reliable yet...
H5_CFLAGS="$H5_CFLAGS -Wunreachable-code"
# Append warning flags from gcc-3.3* case
H5_CFLAGS="$H5_CFLAGS -Wendif-labels"
# Append warning flags from gcc-3.4* case
H5_CFLAGS="$H5_CFLAGS -Wdeclaration-after-statement -Wold-style-definition -Winvalid-pch"
# Replace old -W flag with new -Wextra flag
H5_CFLAGS="`echo $H5_CFLAGS | sed -e 's/-W\ /-Wextra\ /g'`"
# Append more extra warning flags that only gcc 4.0+ know about
H5_CFLAGS="$H5_CFLAGS -Wvariadic-macros -Wnonnull -Winit-self -Wmissing-include-dirs -Wswitch-default -Wswitch-enum -Wunused-macros"
# Append more extra warning flags that only gcc 4.1+ know about
H5_CFLAGS="$H5_CFLAGS -Wunsafe-loop-optimizations -Wc++-compat -Wvolatile-register-var"
# Append more extra warning flags that only gcc 4.2+ know about
# Append warning flags that only gcc 4.2+ knows about
H5_CFLAGS="$H5_CFLAGS -Wstrict-overflow"
;;
@ -804,172 +445,12 @@ case "$cc_vendor-$cc_version" in
# Disable warnings about using 'long long' type
H5_CFLAGS="$H5_CFLAGS -Wno-long-long"
# Append warning flags from gcc-3* case
# (don't use -Wpadded flag for normal builds, many of the warnings its
# issuing can't be fixed and they are making it hard to detect other,
# more important warnings)
#H5_CFLAGS="$H5_CFLAGS -Wfloat-equal -Wmissing-format-attribute -Wpadded"
H5_CFLAGS="$H5_CFLAGS -Wfloat-equal -Wmissing-format-attribute"
# Append warning flags from gcc-3.2* case
H5_CFLAGS="$H5_CFLAGS -Wpacked -Wdisabled-optimization"
DEVELOPER_WARNING_CFLAGS="$DEVELOPER_WARNING_CFLAGS -Wmissing-noreturn"
NO_DEVELOPER_WARNING_CFLAGS="$NO_DEVELOPER_WARNING_CFLAGS -Wno-missing-noreturn"
# Enable more format checking flags, beyond the basic -Wformat included
# in -Wall
H5_CFLAGS="$H5_CFLAGS -Wformat=2"
# The "unreachable code" warning does not appear to be reliable yet...
H5_CFLAGS="$H5_CFLAGS -Wunreachable-code"
# Append warning flags from gcc-3.3* case
H5_CFLAGS="$H5_CFLAGS -Wendif-labels"
# Append warning flags from gcc-3.4* case
H5_CFLAGS="$H5_CFLAGS -Wdeclaration-after-statement -Wold-style-definition -Winvalid-pch"
# Replace old -W flag with new -Wextra flag
H5_CFLAGS="`echo $H5_CFLAGS | sed -e 's/-W\ /-Wextra\ /g'`"
# Append more extra warning flags that only gcc 4.0+ know about
H5_CFLAGS="$H5_CFLAGS -Wvariadic-macros -Wnonnull -Winit-self -Wmissing-include-dirs -Wswitch-default -Wswitch-enum -Wunused-macros"
# Append more extra warning flags that only gcc 4.1+ know about
H5_CFLAGS="$H5_CFLAGS -Wunsafe-loop-optimizations -Wc++-compat -Wvolatile-register-var"
# Append warning flags that only gcc 4.1+ knows about
# -Wvolatile-register-var was later incorporated into -Wall and
# needs to be specified explicitly for gcc 4.1-4.3.
H5_CFLAGS="$H5_CFLAGS -Wvolatile-register-var"
;;
gcc-4.0*)
# Disable warnings about using 'long long' type
H5_CFLAGS="$H5_CFLAGS -Wno-long-long"
# Append warning flags from gcc-3* case
# (don't use -Wpadded flag for normal builds, many of the warnings its
# issuing can't be fixed and they are making it hard to detect other,
# more important warnings)
#H5_CFLAGS="$H5_CFLAGS -Wfloat-equal -Wmissing-format-attribute -Wpadded"
H5_CFLAGS="$H5_CFLAGS -Wfloat-equal -Wmissing-format-attribute"
# Append warning flags from gcc-3.2* case
H5_CFLAGS="$H5_CFLAGS -Wpacked -Wdisabled-optimization"
DEVELOPER_WARNING_CFLAGS="$DEVELOPER_WARNING_CFLAGS -Wmissing-noreturn"
NO_DEVELOPER_WARNING_CFLAGS="$NO_DEVELOPER_WARNING_CFLAGS -Wno-missing-noreturn"
# The "format=2" warning generates too many warnings about valid
# usage in the library.
#CFLAGS="$CFLAGS -Wformat=2"
# The "unreachable code" warning does not appear to be reliable yet...
#CFLAGS="$CFLAGS -Wunreachable-code"
# Append warning flags from gcc-3.3* case
H5_CFLAGS="$H5_CFLAGS -Wendif-labels"
# Append warning flags from gcc-3.4* case
H5_CFLAGS="$H5_CFLAGS -Wdeclaration-after-statement -Wold-style-definition -Winvalid-pch"
# Replace old -W flag with new -Wextra flag
H5_CFLAGS="`echo $H5_CFLAGS | sed -e 's/-W\ /-Wextra\ /g'`"
# Append more extra warning flags that only gcc 4.0+ know about
H5_CFLAGS="$H5_CFLAGS -Wvariadic-macros -Wnonnull -Winit-self -Wmissing-include-dirs -Wswitch-default -Wswitch-enum -Wunused-macros"
;;
gcc-3.4*)
# Disable warnings about using 'long long' type
H5_CFLAGS="$H5_CFLAGS -Wno-long-long"
# Append warning flags from gcc-3* case
# (don't use -Wpadded flag for normal builds, many of the warnings its
# issuing can't be fixed and they are making it hard to detect other,
# more important warnings)
#H5_CFLAGS="$H5_CFLAGS -Wfloat-equal -Wmissing-format-attribute -Wpadded"
H5_CFLAGS="$H5_CFLAGS -Wfloat-equal -Wmissing-format-attribute"
# Append warning flags from gcc-3.2* case
H5_CFLAGS="$H5_CFLAGS -Wpacked -Wdisabled-optimization"
DEVELOPER_WARNING_CFLAGS="$DEVELOPER_WARNING_CFLAGS -Wmissing-noreturn"
NO_DEVELOPER_WARNING_CFLAGS="$NO_DEVELOPER_WARNING_CFLAGS -Wno-missing-noreturn"
# The "format=2" warning generates too many warnings about valid
# usage in the library.
#CFLAGS="$CFLAGS -Wformat=2"
# The "unreachable code" warning does not appear to be reliable yet...
#CFLAGS="$CFLAGS -Wunreachable-code"
# Append warning flags from gcc-3.3* case
H5_CFLAGS="$H5_CFLAGS -Wendif-labels"
# Append more extra warning flags that only gcc3.4+ know about
H5_CFLAGS="$H5_CFLAGS -Wdeclaration-after-statement -Wold-style-definition -Winvalid-pch"
# Replace old -W flag with new -Wextra flag
H5_CFLAGS="`echo $H5_CFLAGS | sed -e 's/-W\ /-Wextra\ /g'`"
;;
gcc-3.3*)
# Disable warnings about using 'long long' type
H5_CFLAGS="$H5_CFLAGS -Wno-long-long"
# Append warning flags from gcc-3* case
# (don't use -Wpadded flag for normal builds, many of the warnings its
# issuing can't be fixed and they are making it hard to detect other,
# more important warnings)
#H5_CFLAGS="$H5_CFLAGS -Wfloat-equal -Wmissing-format-attribute -Wpadded"
H5_CFLAGS="$H5_CFLAGS -Wfloat-equal -Wmissing-format-attribute"
# Append warning flags from gcc-3.2* case
H5_CFLAGS="$H5_CFLAGS -Wpacked -Wdisabled-optimization"
DEVELOPER_WARNING_CFLAGS="$DEVELOPER_WARNING_CFLAGS -Wmissing-noreturn"
NO_DEVELOPER_WARNING_CFLAGS="$NO_DEVELOPER_WARNING_CFLAGS -Wno-missing-noreturn"
# The "format=2" warning generates too many warnings about valid
# usage in the library.
#CFLAGS="$CFLAGS -Wformat=2"
# The "unreachable code" warning does not appear to be reliable yet...
#CFLAGS="$CFLAGS -Wunreachable-code"
# Append more extra warning flags that only gcc3.3+ know about
H5_CFLAGS="$H5_CFLAGS -Wendif-labels"
;;
gcc-3.2*)
# Disable warnings about using 'long long' type
H5_CFLAGS="$H5_CFLAGS -Wno-long-long"
# Append warning flags from gcc-3* case
# (don't use -Wpadded flag for normal builds, many of the warnings its
# issuing can't be fixed and they are making it hard to detect other,
# more important warnings)
#H5_CFLAGS="$H5_CFLAGS -Wfloat-equal -Wmissing-format-attribute -Wpadded"
H5_CFLAGS="$H5_CFLAGS -Wfloat-equal -Wmissing-format-attribute"
# Append more extra warning flags that only gcc3.2+ know about
H5_CFLAGS="$H5_CFLAGS -Wpacked -Wdisabled-optimization"
DEVELOPER_WARNING_CFLAGS="$DEVELOPER_WARNING_CFLAGS -Wmissing-noreturn"
NO_DEVELOPER_WARNING_CFLAGS="$NO_DEVELOPER_WARNING_CFLAGS -Wno-missing-noreturn"
# The "format=2" warning generates too many warnings about valid
# usage in the library.
#CFLAGS="$CFLAGS -Wformat=2"
# The "unreachable code" warning does not appear to be reliable yet...
#CFLAGS="$CFLAGS -Wunreachable-code"
;;
gcc-3*)
# Disable warnings about using 'long long' type
H5_CFLAGS="$H5_CFLAGS -Wno-long-long"
# Append some extra warning flags that only gcc3+ know about
# (don't use -Wpadded flag for normal builds, many of the warnings its
# issuing can't be fixed and they are making it hard to detect other,
# more important warnings)
#H5_CFLAGS="$H5_CFLAGS -Wfloat-equal -Wmissing-format-attribute -Wpadded"
H5_CFLAGS="$H5_CFLAGS -Wfloat-equal -Wmissing-format-attribute"
;;
esac
# Clear cc info if no flags set

View File

@ -47,7 +47,7 @@
#define CHUNK_NX 4
#define CHUNK_NY 4
#define DEFLATE_SIZE_ADJUST(s) (ceil(((double)(s))*1.001)+12)
#define DEFLATE_SIZE_ADJUST(s) (HDceil(((double)(s))*H5_DOUBLE(1.001))+H5_DOUBLE(12.0))
/* Temporary filter IDs used for testing */
#define H5Z_FILTER_BOGUS1 305

View File

@ -928,64 +928,60 @@ error: /* An error has occurred. Clean up and exit. */
* 2016/01/27 -BMR
*-------------------------------------------------------------------------
*/
static herr_t verify_accessors(hid_t fid, const char *table_name, herr_t expected_value)
static herr_t verify_accessors(hid_t fid, const char *table_name, hbool_t uses_vlen_type)
{
hid_t ptable=H5I_INVALID_HID; /* Packet table identifier */
hid_t dset_id=H5I_INVALID_HID; /* Dataset associated with the pt */
hid_t dtype_id=H5I_INVALID_HID; /* Dataset identifier */
hid_t ptable = H5I_INVALID_HID; /* Packet table identifier */
hid_t dset_id = H5I_INVALID_HID; /* Dataset associated with the pt */
hid_t dtype_id = H5I_INVALID_HID; /* Dataset identifier */
char buf[NAME_BUF_SIZE];
ssize_t name_size;
herr_t is_varlen = 0;
herr_t ret = FAIL; /* Returned status from a callee */
htri_t vlen_check_result = -1;
/* Open the named packet table. */
ptable = H5PTopen(fid, table_name);
if (ptable < 0)
goto error;
if((ptable = H5PTopen(fid, table_name)) < 0)
goto error;
/* Get the associated dataset ID. */
dset_id = H5PTget_dataset(ptable);
if (dset_id < 0)
goto error;
if((dset_id = H5PTget_dataset(ptable)) < 0)
goto error;
/* Check if the packet table's name matches its associated dataset's. */
*buf = '\0';
name_size = H5Iget_name(dset_id, (char*)buf, NAME_BUF_SIZE);
if (name_size < 0)
goto error;
if((name_size = H5Iget_name(dset_id, (char*)buf, NAME_BUF_SIZE)) < 0)
goto error;
VERIFY(HDstrcmp(buf, table_name), "Names of dataset and packet table don't match");
/* Get the packet table's datatype ID */
dtype_id = H5PTget_type(ptable);
if (dtype_id < 0)
goto error;
if((dtype_id = H5PTget_type(ptable)) < 0)
goto error;
/* Check if the type class matches that of the packet table. */
is_varlen = H5Tdetect_class(dtype_id, H5T_VLEN);
if (is_varlen == FAIL) /* failure occurred */
goto error;
else if (is_varlen == expected_value) /* length types match */
ret = SUCCEED;
else /* length types don't match */
{
/* Give lengthtype "fixed-length" or "variable-length" depending on the
expected_value passed in, then print the error message. */
char lenthtype[20];
HDstrcpy(lenthtype, "fixed-length");
if (expected_value == 1)
HDstrcpy(lenthtype, "variable-length");
fprintf(stderr, "\nThe dataset '%s' should be %s but is not\n", table_name, lenthtype);
ret = FAIL;
if((vlen_check_result = H5Tdetect_class(dtype_id, H5T_VLEN)) < 0)
goto error;
/* Check if length types match */
if (vlen_check_result != (htri_t)uses_vlen_type) {
/* Give lengthtype "fixed-length" or "variable-length" depending on the
* expected_value passed in, then print the error message.
*/
char lenthtype[20];
if (uses_vlen_type == TRUE)
HDstrcpy(lenthtype, "variable-length");
else
HDstrcpy(lenthtype, "fixed-length");
HDfprintf(stderr, "\nThe dataset '%s' should be %s but is not\n", table_name, lenthtype);
goto error;
}
/* Close the packet table */
if (H5PTclose(ptable) < 0)
goto error;
goto error;
return SUCCEED;
error: /* An error has occurred. Clean up and exit. */
if (H5PTis_valid(ptable) > 0) H5PTclose(ptable);
if (H5PTis_valid(ptable) > 0)
H5PTclose(ptable);
H5_FAILED();
return FAIL;
} /* verify_accessors */
@ -1010,25 +1006,26 @@ static int test_accessors(void)
/* Open the file */
fid = H5Fopen(TEST_FILE_NAME, H5F_ACC_RDWR, H5P_DEFAULT);
if (fid < 0)
goto error;
goto error;
ret = verify_accessors(fid, PT_VLEN_ATOMIC, TRUE);
if (ret < 0)
goto error;
goto error;
ret = verify_accessors(fid, PT_FIXED_LEN, FALSE);
if (ret < 0)
goto error;
goto error;
/* Close the file */
if (H5Fclose(fid) < 0)
goto error;
goto error;
PASSED();
return SUCCEED;
error: /* An error has occurred. Clean up and exit. */
if (fid > 0) H5Fclose(fid);
if (fid > 0)
H5Fclose(fid);
H5_FAILED();
return FAIL;
} /* test_accessors */

View File

@ -38,24 +38,24 @@ static herr_t extend_dset_one(const char *file, char *dname, int action);
/* Data structures for datasets with compound data type */
typedef struct sub22_t {
unsigned int a;
unsigned int b;
unsigned int c;
int a;
int b;
int c;
} sub22_t;
typedef struct sub2_t {
unsigned int a;
int a;
sub22_t b;
unsigned int c;
int c;
} sub2_t;
typedef struct sub4_t {
unsigned int a;
unsigned int b;
int a;
int b;
} sub4_t;
typedef struct set_t {
unsigned int field1;
int field1;
sub2_t field2;
double field3;
sub4_t field4;
@ -78,7 +78,7 @@ extend_dset_two(const char *file, char *dname, int action1, int action2)
hid_t sid = -1; /* dataspace id */
hid_t dtid = -1; /* dataset's datatype id */
int ndims; /* # of dimension sizes */
unsigned i, j; /* local index variable */
unsigned i; /* local index variable */
hsize_t ext_dims[2]; /* new dimension sizes after extension */
hsize_t cur_dims[2]; /* current dimension sizes */
size_t dtype_size; /* size of the dataset's datatype */
@ -144,23 +144,23 @@ extend_dset_two(const char *file, char *dname, int action1, int action2)
goto error;
num_elmts = 1;
for(j = 0; j < (unsigned)ndims; j++)
num_elmts *= (unsigned)ext_dims[j];
for(i = 0; i < (unsigned)ndims; i++)
num_elmts *= (unsigned)ext_dims[i];
/* Compound type */
if(!HDstrcmp(dname, DSET_CMPD_TWO)) {
HDmemset(cbuf, 0, TEST_BUF_SIZE * sizeof(set_t));
for(j = 0; j < num_elmts; j++) {
cbuf[j].field1 = action1;
cbuf[j].field2.a = action1;
cbuf[j].field2.c = action1;
cbuf[j].field2.b.a = action1;
cbuf[j].field2.b.b = action1;
cbuf[j].field2.b.c = action1;
cbuf[j].field3 = action1;
cbuf[j].field4.a = action1;
cbuf[j].field4.b = action1;
for(i = 0; i < num_elmts; i++) {
cbuf[i].field1 = action1;
cbuf[i].field2.a = action1;
cbuf[i].field2.c = action1;
cbuf[i].field2.b.a = action1;
cbuf[i].field2.b.b = action1;
cbuf[i].field2.b.c = action1;
cbuf[i].field3 = action1;
cbuf[i].field4.a = action1;
cbuf[i].field4.b = action1;
} /* end for */
/* Write to the dataset */
@ -169,8 +169,8 @@ extend_dset_two(const char *file, char *dname, int action1, int action2)
} else { /* Integer type */
HDmemset(ibuf, 0, TEST_BUF_SIZE * sizeof(int));
for(j = 0; j < num_elmts; j++)
ibuf[j] = action1;
for(i = 0; i < num_elmts; i++)
ibuf[i] = action1;
/* Write to the dataset */
if(H5Dwrite(did, dtid, H5S_ALL, H5S_ALL, H5P_DEFAULT, ibuf) < 0)
@ -225,7 +225,7 @@ extend_dset_one(const char *file, char *dname, int action)
hid_t dtid = -1; /* dataset's datatype id */
hid_t sid = -1; /* dataspace id */
hid_t mid = -1; /* memory space id */
unsigned i, j; /* local index variable */
int i; /* local index variable */
hsize_t cur_dims[1]; /* current dimension sizes */
hsize_t ext_dims[1]; /* new dimension sizes after extension */
hsize_t offset[1]; /* starting offsets of appended data */
@ -304,18 +304,18 @@ extend_dset_one(const char *file, char *dname, int action)
if(!HDstrcmp(dname, DSET_CMPD) || !HDstrcmp(dname, DSET_CMPD_ESC)) {
HDmemset(cbuf, 0, TEST_BUF_SIZE * sizeof(set_t));
for(j = 0; j < (unsigned)action; j++) {
cbuf[j].field1 = j + 1;
cbuf[j].field2.a = j + 2;
cbuf[j].field2.b.a = j + 2;
cbuf[j].field2.b.b = j + 2;
cbuf[j].field2.b.c = j + 2;
cbuf[j].field2.c = j + 2;
for(i = 0; i < action; i++) {
cbuf[i].field1 = i + 1;
cbuf[i].field2.a = i + 2;
cbuf[i].field2.b.a = i + 2;
cbuf[i].field2.b.b = i + 2;
cbuf[i].field2.b.c = i + 2;
cbuf[i].field2.c = i + 2;
cbuf[j].field3 = j + 3;
cbuf[i].field3 = i + 3;
cbuf[j].field4.a = j + 4;
cbuf[j].field4.b = j + 4;
cbuf[i].field4.a = i + 4;
cbuf[i].field4.b = i + 4;
} /* end for */
/* Write to the extended region of the dataset */
@ -324,8 +324,8 @@ extend_dset_one(const char *file, char *dname, int action)
} else { /* Integer type */
HDmemset(ibuf, 0, TEST_BUF_SIZE * sizeof(int));
for(j = 0; j < (unsigned)action; j++)
ibuf[j] = (int)j;
for(i = 0; i < action; i++)
ibuf[i] = (int)i;
/* Write to the extended region of the dataset */
if(H5Dwrite(did, dtid, mid, sid, H5P_DEFAULT, ibuf) < 0)

View File

@ -58,24 +58,24 @@
/* Data structures for datasets with compound types */
typedef struct sub22_t {
unsigned int a;
unsigned int b;
unsigned int c;
int a;
int b;
int c;
} sub22_t;
typedef struct sub2_t {
unsigned int a;
int a;
sub22_t b;
unsigned int c;
int c;
} sub2_t;
typedef struct sub4_t {
unsigned int a;
unsigned int b;
int a;
int b;
} sub4_t;
typedef struct set_t {
unsigned int field1;
int field1;
sub2_t field2;
double field3;
sub4_t field4;

View File

@ -24,6 +24,7 @@ extern "C" {
#include <jni.h>
#include "hdf5.h"
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wmissing-prototypes"
JNIEXPORT jlong JNICALL

View File

@ -457,7 +457,7 @@ Java_hdf_hdf5lib_H5_H5Lget_1value_1by_1idx
} /* end if */
else {
buf_size = infobuf.u.val_size;
if(buf_size < 0) {
if(buf_size == 0) {
h5libraryError(env);
} /* end if */
else {

View File

@ -5127,8 +5127,8 @@ Java_hdf_hdf5lib_H5_H5Pget_1mdc_1log_1options
else {
/* get the length of the filename */
H5Pget_mdc_log_options((hid_t)fapl_id, &is_enabled, NULL, &location_size, &start_on_access);
if (location_size < 0) {
h5badArgument(env, "H5Pget_mdc_log_options: location_size < 0");
if (location_size == 0) {
h5badArgument(env, "H5Pget_mdc_log_options: location_size is 0");
}/* end if */
else if (location_size > 0) {
location_size++; /* add extra space for the null terminator */

View File

@ -68,7 +68,7 @@ JNIEXPORT void JNICALL
Java_hdf_hdf5lib_H5_H5PLappend
(JNIEnv *env, jclass clss, jobjectArray plugin_path)
{
char *aName;
const char *aName;
herr_t retVal = -1;
PIN_JAVA_STRING(plugin_path, aName);
@ -90,7 +90,7 @@ JNIEXPORT void JNICALL
Java_hdf_hdf5lib_H5_H5PLprepend
(JNIEnv *env, jclass clss, jobjectArray plugin_path)
{
char *aName;
const char *aName;
herr_t retVal = -1;
PIN_JAVA_STRING(plugin_path, aName);
@ -113,7 +113,7 @@ JNIEXPORT void JNICALL
Java_hdf_hdf5lib_H5_H5PLreplace
(JNIEnv *env, jclass clss, jobjectArray plugin_path, jint index)
{
char *aName;
const char *aName;
herr_t retVal = -1;
PIN_JAVA_STRING(plugin_path, aName);
@ -136,7 +136,7 @@ JNIEXPORT void JNICALL
Java_hdf_hdf5lib_H5_H5PLinsert
(JNIEnv *env, jclass clss, jobjectArray plugin_path, jint index)
{
char *aName;
const char *aName;
herr_t retVal = -1;
PIN_JAVA_STRING(plugin_path, aName);

View File

@ -1206,8 +1206,8 @@ Java_hdf_hdf5lib_H5_H5Sencode
if (status < 0) {
h5libraryError(env);
} /* end else if */
else if (buf_size < 0) {
h5badArgument(env, "H5Sencode: buf_size < 0");
else if (buf_size == 0) {
h5badArgument(env, "H5Sencode: buf_size = 0");
} /* end if */
else {
bufPtr = (unsigned char*)HDcalloc((size_t) 1, buf_size);

View File

@ -117,9 +117,29 @@ Bug Fixes since HDF5-1.10.1 release
Tools
-----
- Improved h5diff compare of strings and arrays.
- h5repack
(ADB, 2017/05/18, HDFFV-9055, HDFFV-10128)
h5repack did not maintain the creation order flag of the root
group.
Improved h5repack by reading the creation order and applying the
flag to the new root group. Also added arguments to set the
order and index direction, which applies to the traversing of the
original file, on the command line.
(ADB - 2017/05/26, HDFFV-8611)
- h5diff
h5diff failed to account for strpad type and null terminators
of char strings. Also, h5diff failed to account for string length
differences and would give a different result depending on file
order in the command line.
Improved h5diff compare of strings and arrays by adding a check for
string lengths and if the strpad was null filled.
(ADB - 2017/05/18, HDFFV-9055, HDFFV-10128)
High-Level APIs:
------

View File

@ -3004,10 +3004,10 @@ H5D__format_convert(H5D_t *dataset, hid_t dxpl_id)
{
H5D_chk_idx_info_t new_idx_info; /* Index info for the new layout */
H5D_chk_idx_info_t idx_info; /* Index info for the current layout */
H5O_layout_t newlayout; /* The new layout */
hbool_t init_new_index = FALSE; /* Indicate that the new chunk index is initialized */
H5O_layout_t *newlayout = NULL; /* The new layout */
hbool_t init_new_index = FALSE; /* Indicate that the new chunk index is initialized */
hbool_t delete_old_layout = FALSE; /* Indicate that the old layout message is deleted */
hbool_t add_new_layout = FALSE; /* Indicate that the new layout message is added */
hbool_t add_new_layout = FALSE; /* Indicate that the new layout message is added */
herr_t ret_value = SUCCEED; /* Return value */
FUNC_ENTER_PACKAGE_TAG(dxpl_id, dataset->oloc.addr, FAIL)
@ -3017,121 +3017,127 @@ H5D__format_convert(H5D_t *dataset, hid_t dxpl_id)
switch(dataset->shared->layout.type) {
case H5D_CHUNKED:
HDassert(dataset->shared->layout.u.chunk.idx_type != H5D_CHUNK_IDX_BTREE);
HDassert(dataset->shared->layout.u.chunk.idx_type != H5D_CHUNK_IDX_BTREE);
/* Set up the current index info */
idx_info.f = dataset->oloc.file;
idx_info.dxpl_id = dxpl_id;
idx_info.pline = &dataset->shared->dcpl_cache.pline;
idx_info.layout = &dataset->shared->layout.u.chunk;
idx_info.storage = &dataset->shared->layout.storage.u.chunk;
if(NULL == (newlayout = (H5O_layout_t *)H5MM_calloc(sizeof(H5O_layout_t))))
HGOTO_ERROR(H5E_RESOURCE, H5E_NOSPACE, FAIL, "unable to allocate buffer")
/* Copy the current layout info to the new layout */
HDmemcpy(&newlayout, &dataset->shared->layout, sizeof(H5O_layout_t));
/* Set up the current index info */
idx_info.f = dataset->oloc.file;
idx_info.dxpl_id = dxpl_id;
idx_info.pline = &dataset->shared->dcpl_cache.pline;
idx_info.layout = &dataset->shared->layout.u.chunk;
idx_info.storage = &dataset->shared->layout.storage.u.chunk;
/* Set up info for version 1 B-tree in the new layout */
newlayout.version = H5O_LAYOUT_VERSION_3;
newlayout.storage.u.chunk.idx_type = H5D_CHUNK_IDX_BTREE;
newlayout.storage.u.chunk.idx_addr = HADDR_UNDEF;
newlayout.storage.u.chunk.ops = H5D_COPS_BTREE;
newlayout.storage.u.chunk.u.btree.shared = NULL;
/* Copy the current layout info to the new layout */
HDmemcpy(newlayout, &dataset->shared->layout, sizeof(H5O_layout_t));
/* Set up the index info to version 1 B-tree */
new_idx_info.f = dataset->oloc.file;
new_idx_info.dxpl_id = dxpl_id;
new_idx_info.pline = &dataset->shared->dcpl_cache.pline;
new_idx_info.layout = &newlayout.u.chunk;
new_idx_info.storage = &newlayout.storage.u.chunk;
/* Set up info for version 1 B-tree in the new layout */
newlayout->version = H5O_LAYOUT_VERSION_3;
newlayout->storage.u.chunk.idx_type = H5D_CHUNK_IDX_BTREE;
newlayout->storage.u.chunk.idx_addr = HADDR_UNDEF;
newlayout->storage.u.chunk.ops = H5D_COPS_BTREE;
newlayout->storage.u.chunk.u.btree.shared = NULL;
/* Initialize version 1 B-tree */
if(new_idx_info.storage->ops->init &&
(new_idx_info.storage->ops->init)(&new_idx_info, dataset->shared->space, dataset->oloc.addr) < 0)
HGOTO_ERROR(H5E_DATASET, H5E_CANTINIT, FAIL, "can't initialize indexing information")
init_new_index = TRUE;
/* Set up the index info to version 1 B-tree */
new_idx_info.f = dataset->oloc.file;
new_idx_info.dxpl_id = dxpl_id;
new_idx_info.pline = &dataset->shared->dcpl_cache.pline;
new_idx_info.layout = &(newlayout->u).chunk;
new_idx_info.storage = &(newlayout->storage).u.chunk;
/* If the current chunk index exists */
if(H5F_addr_defined(idx_info.storage->idx_addr)) {
/* Initialize version 1 B-tree */
if(new_idx_info.storage->ops->init && (new_idx_info.storage->ops->init)(&new_idx_info, dataset->shared->space, dataset->oloc.addr) < 0)
HGOTO_ERROR(H5E_DATASET, H5E_CANTINIT, FAIL, "can't initialize indexing information")
init_new_index = TRUE;
/* Create v1 B-tree chunk index */
if((new_idx_info.storage->ops->create)(&new_idx_info) < 0)
HGOTO_ERROR(H5E_DATASET, H5E_CANTINIT, FAIL, "can't create chunk index")
/* If the current chunk index exists */
if(H5F_addr_defined(idx_info.storage->idx_addr)) {
/* Iterate over the chunks in the current index and insert the chunk addresses
* into the version 1 B-tree chunk index */
if(H5D__chunk_format_convert(dataset, &idx_info, &new_idx_info) < 0)
HGOTO_ERROR(H5E_DATASET, H5E_BADITER, FAIL, "unable to iterate/convert chunk index")
} /* end if */
/* Create v1 B-tree chunk index */
if((new_idx_info.storage->ops->create)(&new_idx_info) < 0)
HGOTO_ERROR(H5E_DATASET, H5E_CANTINIT, FAIL, "can't create chunk index")
/* Delete the old "current" layout message */
if(H5O_msg_remove(&dataset->oloc, H5O_LAYOUT_ID, H5O_ALL, FALSE, dxpl_id) < 0)
HGOTO_ERROR(H5E_SYM, H5E_CANTDELETE, FAIL, "unable to delete layout message")
/* Iterate over the chunks in the current index and insert the chunk addresses
* into the version 1 B-tree chunk index
*/
if(H5D__chunk_format_convert(dataset, &idx_info, &new_idx_info) < 0)
HGOTO_ERROR(H5E_DATASET, H5E_BADITER, FAIL, "unable to iterate/convert chunk index")
} /* end if */
delete_old_layout = TRUE;
/* Delete the old "current" layout message */
if(H5O_msg_remove(&dataset->oloc, H5O_LAYOUT_ID, H5O_ALL, FALSE, dxpl_id) < 0)
HGOTO_ERROR(H5E_SYM, H5E_CANTDELETE, FAIL, "unable to delete layout message")
/* Append the new layout message to the object header */
if(H5O_msg_create(&dataset->oloc, H5O_LAYOUT_ID, 0, H5O_UPDATE_TIME, &newlayout, dxpl_id) < 0)
HGOTO_ERROR(H5E_DATASET, H5E_CANTINIT, FAIL, "unable to update layout header message")
delete_old_layout = TRUE;
add_new_layout = TRUE;
/* Append the new layout message to the object header */
if(H5O_msg_create(&dataset->oloc, H5O_LAYOUT_ID, 0, H5O_UPDATE_TIME, newlayout, dxpl_id) < 0)
HGOTO_ERROR(H5E_DATASET, H5E_CANTINIT, FAIL, "unable to update layout header message")
/* Release the old (current) chunk index */
if(idx_info.storage->ops->dest && (idx_info.storage->ops->dest)(&idx_info) < 0)
HGOTO_ERROR(H5E_DATASET, H5E_CANTFREE, FAIL, "unable to release chunk index info")
add_new_layout = TRUE;
/* Copy the new layout to the dataset's layout */
HDmemcpy(&dataset->shared->layout, &newlayout, sizeof(H5O_layout_t));
/* Release the old (current) chunk index */
if(idx_info.storage->ops->dest && (idx_info.storage->ops->dest)(&idx_info) < 0)
HGOTO_ERROR(H5E_DATASET, H5E_CANTFREE, FAIL, "unable to release chunk index info")
break;
/* Copy the new layout to the dataset's layout */
HDmemcpy(&dataset->shared->layout, newlayout, sizeof(H5O_layout_t));
case H5D_CONTIGUOUS:
break;
case H5D_CONTIGUOUS:
case H5D_COMPACT:
HDassert(dataset->shared->layout.version > H5O_LAYOUT_VERSION_DEFAULT);
dataset->shared->layout.version = H5O_LAYOUT_VERSION_DEFAULT;
if(H5O_msg_write(&(dataset->oloc), H5O_LAYOUT_ID, 0, H5O_UPDATE_TIME, &(dataset->shared->layout), dxpl_id) < 0)
HGOTO_ERROR(H5E_FILE, H5E_CANTINIT, FAIL, "unable to update layout message")
break;
HDassert(dataset->shared->layout.version > H5O_LAYOUT_VERSION_DEFAULT);
dataset->shared->layout.version = H5O_LAYOUT_VERSION_DEFAULT;
if(H5O_msg_write(&(dataset->oloc), H5O_LAYOUT_ID, 0, H5O_UPDATE_TIME, &(dataset->shared->layout), dxpl_id) < 0)
HGOTO_ERROR(H5E_FILE, H5E_CANTINIT, FAIL, "unable to update layout message")
break;
case H5D_VIRTUAL:
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "virtual dataset layout not supported")
case H5D_VIRTUAL:
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "virtual dataset layout not supported")
case H5D_LAYOUT_ERROR:
case H5D_NLAYOUTS:
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "invalid dataset layout type")
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "invalid dataset layout type")
default:
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "unknown dataset layout type")
default:
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "unknown dataset layout type")
} /* end switch */
done:
if(ret_value < 0 && dataset->shared->layout.type == H5D_CHUNKED) {
/* Remove new layout message */
if(add_new_layout)
if(H5O_msg_remove(&dataset->oloc, H5O_LAYOUT_ID, H5O_ALL, FALSE, dxpl_id) < 0)
HDONE_ERROR(H5E_SYM, H5E_CANTDELETE, FAIL, "unable to delete layout message")
/* Remove new layout message */
if(add_new_layout)
if(H5O_msg_remove(&dataset->oloc, H5O_LAYOUT_ID, H5O_ALL, FALSE, dxpl_id) < 0)
HDONE_ERROR(H5E_SYM, H5E_CANTDELETE, FAIL, "unable to delete layout message")
/* Add back old layout message */
if(delete_old_layout)
if(H5O_msg_create(&dataset->oloc, H5O_LAYOUT_ID, 0, H5O_UPDATE_TIME, &dataset->shared->layout, dxpl_id) < 0)
HDONE_ERROR(H5E_DATASET, H5E_CANTINIT, FAIL, "unable to add layout header message")
/* Add back old layout message */
if(delete_old_layout)
if(H5O_msg_create(&dataset->oloc, H5O_LAYOUT_ID, 0, H5O_UPDATE_TIME, &dataset->shared->layout, dxpl_id) < 0)
HDONE_ERROR(H5E_DATASET, H5E_CANTINIT, FAIL, "unable to add layout header message")
/* Clean up v1 b-tree chunk index */
if(init_new_index) {
if(H5F_addr_defined(new_idx_info.storage->idx_addr)) {
/* Check for valid address i.e. tag */
if(!H5F_addr_defined(dataset->oloc.addr))
HDONE_ERROR(H5E_DATASET, H5E_BADVALUE, FAIL, "address undefined")
/* Clean up v1 b-tree chunk index */
if(init_new_index) {
if(H5F_addr_defined(new_idx_info.storage->idx_addr)) {
/* Check for valid address i.e. tag */
if(!H5F_addr_defined(dataset->oloc.addr))
HDONE_ERROR(H5E_DATASET, H5E_BADVALUE, FAIL, "address undefined")
/* Expunge from cache all v1 B-tree type entries associated with tag */
if(H5AC_expunge_tag_type_metadata(dataset->oloc.file, dxpl_id, dataset->oloc.addr, H5AC_BT_ID, H5AC__NO_FLAGS_SET))
HDONE_ERROR(H5E_DATASET, H5E_CANTEXPUNGE, FAIL, "unable to expunge index metadata")
} /* end if */
/* Expunge from cache all v1 B-tree type entries associated with tag */
if(H5AC_expunge_tag_type_metadata(dataset->oloc.file, dxpl_id, dataset->oloc.addr, H5AC_BT_ID, H5AC__NO_FLAGS_SET))
HDONE_ERROR(H5E_DATASET, H5E_CANTEXPUNGE, FAIL, "unable to expunge index metadata")
} /* end if */
/* Delete v1 B-tree chunk index */
if(new_idx_info.storage->ops->dest && (new_idx_info.storage->ops->dest)(&new_idx_info) < 0)
HDONE_ERROR(H5E_DATASET, H5E_CANTFREE, FAIL, "unable to release chunk index info")
} /* end if */
/* Delete v1 B-tree chunk index */
if(new_idx_info.storage->ops->dest && (new_idx_info.storage->ops->dest)(&new_idx_info) < 0)
HDONE_ERROR(H5E_DATASET, H5E_CANTFREE, FAIL, "unable to release chunk index info")
} /* end if */
} /* end if */
if(newlayout != NULL)
newlayout = (H5O_layout_t *)H5MM_xfree(newlayout);
FUNC_LEAVE_NOAPI_TAG(ret_value, FAIL)
} /* end H5D__format_convert() */

View File

@ -181,7 +181,6 @@ H5Dread(hid_t dset_id, hid_t mem_type_id, hid_t mem_space_id,
if(direct_read) {
unsigned u;
hsize_t dims[H5O_LAYOUT_NDIMS];
hsize_t internal_offset[H5O_LAYOUT_NDIMS];
if(H5D_CHUNKED != dset->shared->layout.type)

View File

@ -315,6 +315,11 @@ H5FD_mpi_comm_info_dup(MPI_Comm comm, MPI_Info info, MPI_Comm *comm_new, MPI_Inf
info_dup = info;
}
/* Set MPI_ERRORS_RETURN on comm_dup so that MPI failures are not fatal,
and return codes can be checked and handled. May 23, 2017 FTW */
if (MPI_SUCCESS != (mpi_code = MPI_Comm_set_errhandler(comm_dup, MPI_ERRORS_RETURN)))
HMPI_GOTO_ERROR(FAIL, "MPI_Errhandler_set failed", mpi_code)
/* copy them to the return arguments */
*comm_new = comm_dup;
*info_new = info_dup;

View File

@ -99,9 +99,7 @@ H5FL_DEFINE(H5FD_free_t);
static haddr_t
H5FD_extend(H5FD_t *file, H5FD_mem_t type, hsize_t size)
{
hsize_t orig_size = size; /* Original allocation size */
haddr_t eoa; /* Address of end-of-allocated space */
hsize_t extra; /* Extra space to allocate, to align request */
haddr_t ret_value = HADDR_UNDEF; /* Return value */
FUNC_ENTER_NOAPI_NOINIT

View File

@ -156,7 +156,7 @@ herr_t
H5MF_sects_debug(H5F_t *f, hid_t dxpl_id, haddr_t fs_addr, FILE *stream, int indent, int fwidth)
{
herr_t ret_value = SUCCEED; /* Return value */
H5FD_mem_t type; /* Memory type for iteration */
H5F_mem_page_t type; /* Memory type for iteration */
FUNC_ENTER_NOAPI_TAG(dxpl_id, H5AC__FREESPACE_TAG, FAIL)
@ -168,31 +168,31 @@ H5MF_sects_debug(H5F_t *f, hid_t dxpl_id, haddr_t fs_addr, FILE *stream, int ind
HDassert(indent >= 0);
HDassert(fwidth >= 0);
for(type = H5FD_MEM_DEFAULT; type < H5FD_MEM_NTYPES; H5_INC_ENUM(H5FD_mem_t, type))
if(H5F_addr_eq(f->shared->fs_addr[type], fs_addr)) {
if(!f->shared->fs_man[type])
for(type = H5F_MEM_PAGE_DEFAULT; type < H5F_MEM_PAGE_NTYPES; H5_INC_ENUM(H5F_mem_page_t, type))
if(H5F_addr_eq(f->shared->fs_addr[type], fs_addr)) {
if(!f->shared->fs_man[type])
if(H5MF_open_fstype(f, dxpl_id, type) < 0)
HGOTO_ERROR(H5E_RESOURCE, H5E_CANTINIT, FAIL, "can't initialize file free space")
HGOTO_ERROR(H5E_RESOURCE, H5E_CANTINIT, FAIL, "can't initialize file free space")
if(f->shared->fs_man[type]) {
H5MF_debug_iter_ud_t udata; /* User data for callbacks */
if(f->shared->fs_man[type]) {
H5MF_debug_iter_ud_t udata; /* User data for callbacks */
/* Prepare user data for section iteration callback */
udata.fspace = f->shared->fs_man[type];
udata.stream = stream;
udata.indent = indent;
udata.fwidth = fwidth;
/* Prepare user data for section iteration callback */
udata.fspace = f->shared->fs_man[type];
udata.stream = stream;
udata.indent = indent;
udata.fwidth = fwidth;
/* Iterate over all the free space sections */
if(H5FS_sect_iterate(f, dxpl_id, f->shared->fs_man[type], H5MF_sects_debug_cb, &udata) < 0)
HGOTO_ERROR(H5E_HEAP, H5E_BADITER, FAIL, "can't iterate over heap's free space")
/* Iterate over all the free space sections */
if(H5FS_sect_iterate(f, dxpl_id, f->shared->fs_man[type], H5MF_sects_debug_cb, &udata) < 0)
HGOTO_ERROR(H5E_HEAP, H5E_BADITER, FAIL, "can't iterate over heap's free space")
/* Close the free space information */
if(H5FS_close(f, dxpl_id, f->shared->fs_man[type]) < 0)
HGOTO_ERROR(H5E_HEAP, H5E_CANTRELEASE, FAIL, "can't release free space info")
} /* end if */
break;
} /* end if */
/* Close the free space information */
if(H5FS_close(f, dxpl_id, f->shared->fs_man[type]) < 0)
HGOTO_ERROR(H5E_HEAP, H5E_CANTRELEASE, FAIL, "can't release free space info")
} /* end if */
break;
} /* end if */
done:
FUNC_LEAVE_NOAPI_TAG(ret_value, FAIL)

View File

@ -360,7 +360,7 @@ H5MF_sect_valid(const H5FS_section_class_t H5_ATTR_UNUSED *cls,
static H5FS_section_info_t *
H5MF_sect_split(H5FS_section_info_t *sect, hsize_t frag_size)
{
H5MF_free_section_t *ret_value; /* Return value */
H5MF_free_section_t *ret_value = NULL; /* Return value */
FUNC_ENTER_NOAPI_NOINIT

View File

@ -323,7 +323,7 @@ H5O__mdci_delete(H5F_t *f, hid_t dxpl_id, H5O_t *open_oh, void *_mesg)
* time constraints, I don't want to go there now.
*/
if(H5F_FIRST_ALLOC_DEALLOC(f)) {
HDassert(HADDR_UNDEF !=H5F_EOA_PRE_FSM_FSALLOC(f));
HDassert(HADDR_UNDEF != H5F_EOA_PRE_FSM_FSALLOC(f));
HDassert(H5F_addr_ge(mesg->addr, H5F_EOA_PRE_FSM_FSALLOC(f)));
if(H5MF_tidy_self_referential_fsm_hack(f, dxpl_id) < 0)
HGOTO_ERROR(H5E_OHDR, H5E_CANTFREE, FAIL, "tidy of self referential fsm hack failed")

View File

@ -85,7 +85,7 @@ H5FL_DEFINE_STATIC(H5O_fsinfo_t);
*-------------------------------------------------------------------------
*/
static void *
H5O_fsinfo_decode(H5F_t *f, hid_t dxpl_id, H5O_t H5_ATTR_UNUSED *open_oh,
H5O_fsinfo_decode(H5F_t *f, hid_t H5_ATTR_UNUSED dxpl_id, H5O_t H5_ATTR_UNUSED *open_oh,
unsigned H5_ATTR_UNUSED mesg_flags, unsigned H5_ATTR_UNUSED *ioflags, const uint8_t *p)
{
H5O_fsinfo_t *fsinfo = NULL; /* File space info message */

View File

@ -1544,7 +1544,7 @@ H5Sencode(hid_t obj_id, void *buf, size_t *nalloc)
H5TRACE3("e", "i*x*z", obj_id, buf, nalloc);
/* Check argument and retrieve object */
if (NULL==(dspace=(H5S_t *)H5I_object_verify(obj_id, H5I_DATASPACE)))
if (NULL == (dspace = (H5S_t *)H5I_object_verify(obj_id, H5I_DATASPACE)))
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a dataspace")
if(H5S_encode(dspace, (unsigned char **)&buf, nalloc)<0)

View File

@ -7571,7 +7571,7 @@ H5Sselect_hyperslab(hid_t space_id, H5S_seloper_t op, const hsize_t start[],
H5TRACE6("e", "iSs*h*h*h*h", space_id, op, start, stride, count, block);
/* Check args */
if (NULL == (space=H5I_object_verify(space_id, H5I_DATASPACE)))
if (NULL == (space = (H5S_t *)H5I_object_verify(space_id, H5I_DATASPACE)))
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a data space")
if (H5S_SCALAR==H5S_GET_EXTENT_TYPE(space))
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "hyperslab doesn't support H5S_SCALAR space")
@ -7640,7 +7640,7 @@ H5Scombine_hyperslab(hid_t space_id, H5S_seloper_t op, const hsize_t start[],
H5TRACE6("i", "iSs*h*h*h*h", space_id, op, start, stride, count, block);
/* Check args */
if (NULL == (space=H5I_object_verify(space_id, H5I_DATASPACE)))
if (NULL == (space = (H5S_t *)H5I_object_verify(space_id, H5I_DATASPACE)))
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a data space")
if(start==NULL || count==NULL)
HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "hyperslab not specified")
@ -7768,9 +7768,9 @@ H5Scombine_select(hid_t space1_id, H5S_seloper_t op, hid_t space2_id)
H5TRACE3("i", "iSsi", space1_id, op, space2_id);
/* Check args */
if (NULL == (space1=H5I_object_verify(space1_id, H5I_DATASPACE)))
if (NULL == (space1 = (H5S_t *)H5I_object_verify(space1_id, H5I_DATASPACE)))
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a data space")
if (NULL == (space2=H5I_object_verify(space2_id, H5I_DATASPACE)))
if (NULL == (space2 = (H5S_t *)H5I_object_verify(space2_id, H5I_DATASPACE)))
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a data space")
if(!(op>H5S_SELECT_NOOP && op<H5S_SELECT_INVALID))
HGOTO_ERROR(H5E_ARGS, H5E_UNSUPPORTED, FAIL, "invalid selection operation")
@ -7896,9 +7896,9 @@ H5Sselect_select(hid_t space1_id, H5S_seloper_t op, hid_t space2_id)
H5TRACE3("e", "iSsi", space1_id, op, space2_id);
/* Check args */
if (NULL == (space1=H5I_object_verify(space1_id, H5I_DATASPACE)))
if (NULL == (space1 = (H5S_t *)H5I_object_verify(space1_id, H5I_DATASPACE)))
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a data space")
if (NULL == (space2=H5I_object_verify(space2_id, H5I_DATASPACE)))
if (NULL == (space2 = (H5S_t *)H5I_object_verify(space2_id, H5I_DATASPACE)))
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a data space")
if(!(op>H5S_SELECT_NOOP && op<H5S_SELECT_INVALID))
HGOTO_ERROR(H5E_ARGS, H5E_UNSUPPORTED, FAIL, "invalid selection operation")

View File

@ -85,7 +85,7 @@ H5Z_can_apply_szip(hid_t H5_ATTR_UNUSED dcpl_id, hid_t type_id, hid_t H5_ATTR_UN
FUNC_ENTER_NOAPI(FAIL)
/* Get datatype */
if(NULL == (type = H5I_object_verify(type_id, H5I_DATATYPE)))
if(NULL == (type = (H5T_t *)H5I_object_verify(type_id, H5I_DATATYPE)))
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a datatype")
/* Get datatype's size, for checking the "bits-per-pixel" */
@ -156,7 +156,7 @@ H5Z_set_local_szip(hid_t dcpl_id, hid_t type_id, hid_t space_id)
HGOTO_ERROR(H5E_ATOM, H5E_BADATOM, FAIL, "can't find object for ID")
/* Get datatype */
if(NULL == (type = H5I_object_verify(type_id, H5I_DATATYPE)))
if(NULL == (type = (H5T_t *)H5I_object_verify(type_id, H5I_DATATYPE)))
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a datatype")
/* Get the filter's current parameters */

View File

@ -17,6 +17,8 @@
*
* Purpose: Tests the dataset interface (H5D)
*/
#define H5D_FRIEND /*suppress error about including H5Dpkg */
#define H5D_TESTING
#define H5FD_FRIEND /*suppress error about including H5FDpkg */
#define H5FD_TESTING
@ -24,6 +26,7 @@
#include "h5test.h"
#include "H5srcdir.h"
#include "H5Dpkg.h"
#include "H5FDpkg.h"
#include "H5VMprivate.h"
#include "H5Zpkg.h"

View File

@ -9,6 +9,7 @@
* distribution tree, or in https://support.hdfgroup.org/ftp/HDF5/releases. *
* If you do not have access to either file, you may request a copy from *
* help@hdfgroup.org. *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/*
* Programmer: Mike McGreevy

View File

@ -45,8 +45,10 @@
#define TBLOCK_SIZE4 4
#define TBLOCK_SIZE5 5
#define TBLOCK_SIZE6 6
#ifdef PB_OUT
#define TBLOCK_SIZE7 7
#define TBLOCK_SIZE8 8
#endif /* PB_OUT */
#define TBLOCK_SIZE10 10
#define TBLOCK_SIZE11 11
#define TBLOCK_SIZE20 20
@ -138,8 +140,10 @@ static unsigned test_mf_fs_gone(const char *env_h5_drvr, hid_t fapl, hbool_t new
static unsigned test_mf_strat_thres_gone(const char *env_h5_drvr, hid_t fapl, hbool_t new_format);
static unsigned test_mf_fs_persist(const char *env_h5_drvr, hid_t fapl, hbool_t new_format);
static unsigned test_mf_strat_thres_persist(const char *env_h5_drvr, hid_t fapl, hbool_t new_format);
#ifdef PB_OUT
static unsigned test_mf_fs_persist_split(void);
static unsigned test_mf_fs_persist_multi(void);
#endif
static unsigned test_page_alloc_xfree(const char *env_h5_drvr, hid_t fapl);
static unsigned test_page_small(const char *env_h5_drvr, hid_t fapl);
static unsigned test_page_large(const char *env_h5_drvr, hid_t fapl);
@ -6091,6 +6095,7 @@ error:
* Verify that the file's free-space manager(s) are persistent for a split-file
*-------------------------------------------------------------------------
*/
#ifdef PB_OUT
static unsigned
test_mf_fs_persist_split(void)
{
@ -6716,6 +6721,7 @@ error:
} H5E_END_TRY;
return(1);
} /* test_mf_fs_persist_multi() */
#endif /* PB_OUT */
/*
*-------------------------------------------------------------------------

View File

@ -574,7 +574,9 @@ test_noread_with_filters(hid_t file)
/* disable filter plugin */
if(H5PLget_loading_state(&plugin_state) < 0) TEST_ERROR
plugin_state = plugin_state & ~H5PL_FILTER_PLUGIN;
plugin_state = plugin_state & (unsigned)(~H5PL_FILTER_PLUGIN);
if(H5PLset_loading_state(plugin_state) < 0) TEST_ERROR
if((dset = H5Dopen2(file, DSET_DYNLIB1_NAME, H5P_DEFAULT)) < 0) TEST_ERROR
@ -672,8 +674,8 @@ static herr_t
test_groups_with_filters(hid_t file)
{
herr_t ret_value = -1;
hid_t gid;
hid_t group;
hid_t gid = -1;
hid_t group = -1;
int i;
char gname[256];

View File

@ -227,7 +227,7 @@ read_records(const char *filename, unsigned verbose, unsigned long nseconds,
/* Determine the offset of the symbol, within level 0 symbols */
/* (level 0 symbols are the most common symbols) */
offset = (unsigned)(HDrandom() % symbol_count[0]);
offset = (unsigned)HDrandom() % symbol_count[0];
sym_com[v] = &symbol_info[0][offset];
/* Emit informational message */

View File

@ -187,7 +187,7 @@ remove_records(hid_t fid, unsigned verbose, unsigned long nshrinks, unsigned lon
symbol->nrecords = 0;
else
symbol->nrecords -= remove_size;
dim[1] = symbol->nrecords;
dim[1] = symbol->nrecords;
if(H5Dset_extent(symbol->dsid, dim) < 0)
return -1;

View File

@ -4929,9 +4929,9 @@ test_libver_bounds(void)
static void
test_libver_macros(void)
{
unsigned major = H5_VERS_MAJOR;
unsigned minor = H5_VERS_MINOR;
unsigned release = H5_VERS_RELEASE;
int major = H5_VERS_MAJOR;
int minor = H5_VERS_MINOR;
int release = H5_VERS_RELEASE;
/* Output message about test being performed */
MESSAGE(5, ("Testing macros for library version comparison\n"));

View File

@ -48,6 +48,8 @@ parse_option(int argc, char * const argv[])
{
int ret_value=0;
int c;
int use_swmr; /* Need an int to detect errors */
/* command line options: See function usage for a description */
const char *nagg_options = "f:hi:l:n:s:y:z:";
@ -96,11 +98,13 @@ parse_option(int argc, char * const argv[])
};
break;
case 's': /* use swmr file open mode */
if ((UC_opts.use_swmr = HDatoi(optarg)) < 0) {
fprintf(stderr, "swmr value should be 0(no) or 1(yes)\n");
usage(progname_g);
Hgoto_error(-1);
};
use_swmr = HDatoi(optarg);
if (use_swmr != 0 && use_swmr != 1) {
HDfprintf(stderr, "swmr value should be 0(no) or 1(yes)\n");
usage(progname_g);
Hgoto_error(-1);
}
UC_opts.use_swmr = (hbool_t)use_swmr;
break;
case 'y': /* Number of planes per chunk */
if ((UC_opts.chunkplanes = HDstrtoul(optarg, NULL, 0)) <= 0) {

View File

@ -140,7 +140,7 @@ typedef struct mcomp_t
static hsize_t diff_region(hid_t obj1_id, hid_t obj2_id,hid_t region1_id, hid_t region2_id, diff_opt_t *options);
static hbool_t all_zero(const void *_mem, size_t size);
static int ull2float(unsigned long long ull_value, float *f_value);
static hsize_t character_compare(char *mem1,char *mem2,hsize_t i,unsigned u,int rank,hsize_t *dims,hsize_t *acc,hsize_t *pos,diff_opt_t *options,const char *obj1,const char *obj2,int *ph);
static hsize_t character_compare(char *mem1,char *mem2,hsize_t i,size_t u,int rank,hsize_t *dims,hsize_t *acc,hsize_t *pos,diff_opt_t *options,const char *obj1,const char *obj2,int *ph);
static hsize_t character_compare_opt(unsigned char *mem1,unsigned char *mem2,hsize_t i,int rank,hsize_t *dims,hsize_t *acc,hsize_t *pos,diff_opt_t *options,const char *obj1,const char *obj2,int *ph);
static hbool_t equal_float(float value, float expected, diff_opt_t *options);
static hbool_t equal_double(double value, double expected, diff_opt_t *options);
@ -149,7 +149,7 @@ static hbool_t equal_ldouble(long double value, long double expected, diff_opt_t
#endif
static int print_data(diff_opt_t *options);
static void print_pos(int *ph,int pp,hsize_t curr_pos,hsize_t *acc,hsize_t *pos,int rank,hsize_t *dims,const char *obj1,const char *obj2 );
static void print_char_pos(int *ph,int pp,hsize_t curr_pos,unsigned u,hsize_t *acc,hsize_t *pos,int rank,hsize_t *dims,const char *obj1,const char *obj2 );
static void print_char_pos(int *ph,int pp,hsize_t curr_pos,size_t u,hsize_t *acc,hsize_t *pos,int rank,hsize_t *dims,const char *obj1,const char *obj2 );
static void h5diff_print_char(char ch);
static hsize_t diff_datum(void *_mem1,
void *_mem2,
@ -575,7 +575,7 @@ static hsize_t diff_datum(void *_mem1,
{
unsigned char *mem1 = (unsigned char*)_mem1;
unsigned char *mem2 = (unsigned char*)_mem2;
unsigned u;
size_t u;
hid_t memb_type;
size_t type_size;
H5T_sign_t type_sign;
@ -2813,7 +2813,7 @@ static
hsize_t character_compare(char *mem1,
char *mem2,
hsize_t i,
unsigned u,
size_t u,
int rank,
hsize_t *dims,
hsize_t *acc,
@ -5906,7 +5906,7 @@ static
void print_char_pos( int *ph, /* print header */
int pp, /* print percentage */
hsize_t curr_pos,
unsigned u,
size_t u,
hsize_t *acc,
hsize_t *pos,
int rank,
@ -5944,7 +5944,7 @@ void print_char_pos( int *ph, /* print header */
}
else
{
parallel_print("%u", (unsigned)u);
parallel_print("%zu", u);
}
parallel_print("]" );
}

View File

@ -522,7 +522,7 @@ typedef struct h5tools_context_t {
hsize_t acc[H5S_MAX_RANK]; /* accumulator position */
hsize_t pos[H5S_MAX_RANK]; /* matrix position */
hsize_t sm_pos; /* current stripmine element position */
struct H5LD_memb_t **cmpd_listv; /* h5watch: vector containing info about the list of compound fields to be printed */
const struct H5LD_memb_t * const *cmpd_listv; /* h5watch: vector containing info about the list of compound fields to be printed */
} h5tools_context_t;
typedef struct subset_d {

View File

@ -1000,10 +1000,11 @@ h5tools_str_sprint(h5tools_str_t *str, const h5tool_format_t *info, hid_t contai
case H5T_COMPOUND:
if(ctx->cmpd_listv) { /* there is <list_of_fields> */
int save_indent_level; /* The indentation level */
unsigned save_indent_level; /* The indentation level */
size_t curr_field; /* Current field to display */
int i = 0, x = 0; /* Local index variable */
H5LD_memb_t **listv; /* Vector of information for <list_of_fields> */
int i = 0; /* Local index variable */
unsigned x = 0; /* Local index variable */
const H5LD_memb_t * const *listv; /* Vector of information for <list_of_fields> */
listv = ctx->cmpd_listv;
ctx->cmpd_listv = NULL;

View File

@ -249,7 +249,7 @@ h5repack_verify(const char *in_fname, const char *out_fname, pack_opt_t *options
* the same as the input file's strategy.
*/
if(options->fs_strategy) {
if(out_strategy != (options->fs_strategy == (-1) ? 0 : options->fs_strategy)) {
if(out_strategy != (options->fs_strategy == (H5F_fspace_strategy_t)-1 ? 0 : options->fs_strategy)) {
error_msg("file space strategy not set as unexpected\n");
HGOTO_ERROR(FAIL, H5E_tools_min_id_g, "file space strategy not set as unexpected");
}

View File

@ -336,7 +336,7 @@ static void gent_att_compound_vlstr(hid_t loc_id)
{
typedef struct { /* Compound structure for the attribute */
int i;
char *v;
const char *v;
} s1;
hsize_t dim[1] = {1}; /* Dimension size */
hid_t sid = -1; /* Dataspace ID */

View File

@ -3632,8 +3632,8 @@ static int test_comp_vlen_strings(const char *fname1, const char *grp_name, int
char *str_vlen_repeat; /* vlen string */
char str_fixlen[FIXLEN_STR_SIZE]; /* fixed len string */
char str_fixlen_repeat[FIXLEN_STR_SIZE]; /* fixed len string */
char *str_array_vlen[VLEN_STR_ARRY_DIM]; /* vlen string array */
char *str_vlen_array_again[VLEN_STR_ARRY_DIM]; /* vlen string array */
const char *str_array_vlen[VLEN_STR_ARRY_DIM]; /* vlen string array */
const char *str_vlen_array_again[VLEN_STR_ARRY_DIM]; /* vlen string array */
char str_array_fixlen[FIXLEN_STR_ARRY_DIM][FIXLEN_STR_ARRY_SIZE]; /* fixed len string array */
char str_fixlen_array_again[FIXLEN_STR_ARRY_DIM][FIXLEN_STR_ARRY_SIZE]; /* fixed len string array */
} comp1_t;
@ -3645,9 +3645,9 @@ static int test_comp_vlen_strings(const char *fname1, const char *grp_name, int
char str_fixlen[FIXLEN_STR_SIZE]; /* fixed len string */
char *str_vlen_repeat; /* vlen string */
char str_fixlen_repeat[FIXLEN_STR_SIZE]; /* fixed len string */
char *str_array_vlen[VLEN_STR_ARRY_DIM]; /* vlen string array */
const char *str_array_vlen[VLEN_STR_ARRY_DIM]; /* vlen string array */
char str_array_fixlen[FIXLEN_STR_ARRY_DIM][FIXLEN_STR_ARRY_SIZE]; /* fixed len string array */
char *str_vlen_array_again[VLEN_STR_ARRY_DIM]; /* vlen string array */
const char *str_vlen_array_again[VLEN_STR_ARRY_DIM]; /* vlen string array */
char str_fixlen_array_again[FIXLEN_STR_ARRY_DIM][FIXLEN_STR_ARRY_SIZE]; /* fixed len string array */
} comp2_t;
@ -3660,8 +3660,8 @@ static int test_comp_vlen_strings(const char *fname1, const char *grp_name, int
char *str_vlen_repeat; /* vlen string */
char str_array_fixlen[FIXLEN_STR_ARRY_DIM][FIXLEN_STR_ARRY_SIZE]; /* fixed len string array */
char str_fixlen_array_again[FIXLEN_STR_ARRY_DIM][FIXLEN_STR_ARRY_SIZE]; /* fixed len string array */
char *str_array_vlen[VLEN_STR_ARRY_DIM]; /* vlen string array */
char *str_vlen_array_again[VLEN_STR_ARRY_DIM]; /* vlen string array */
const char *str_array_vlen[VLEN_STR_ARRY_DIM]; /* vlen string array */
const char *str_vlen_array_again[VLEN_STR_ARRY_DIM]; /* vlen string array */
} comp3_t;
/* compound4 datatype */
@ -3672,16 +3672,16 @@ static int test_comp_vlen_strings(const char *fname1, const char *grp_name, int
char str_fixlen_repeat[FIXLEN_STR_SIZE]; /* fixed len string */
char *str_vlen_repeat; /* vlen string */
char str_array_fixlen[FIXLEN_STR_ARRY_DIM][FIXLEN_STR_ARRY_SIZE]; /* fixed len string array */
char *str_array_vlen[VLEN_STR_ARRY_DIM]; /* vlen string array */
const char *str_array_vlen[VLEN_STR_ARRY_DIM]; /* vlen string array */
char str_fixlen_array_again[FIXLEN_STR_ARRY_DIM][FIXLEN_STR_ARRY_SIZE]; /* fixed len string array */
char *str_vlen_array_again[VLEN_STR_ARRY_DIM]; /* vlen string array */
const char *str_vlen_array_again[VLEN_STR_ARRY_DIM]; /* vlen string array */
} comp4_t;
/* compound5 datatype */
typedef struct comp5_t
{
char *str_array_vlen[VLEN_STR_ARRY_DIM]; /* vlen string array */
char *str_vlen_array_again[VLEN_STR_ARRY_DIM]; /* vlen string array */
const char *str_array_vlen[VLEN_STR_ARRY_DIM]; /* vlen string array */
const char *str_vlen_array_again[VLEN_STR_ARRY_DIM]; /* vlen string array */
char str_array_fixlen[FIXLEN_STR_ARRY_DIM][FIXLEN_STR_ARRY_SIZE]; /* fixed len string array */
char str_fixlen_array_again[FIXLEN_STR_ARRY_DIM][FIXLEN_STR_ARRY_SIZE]; /* fixed len string array */
char *str_vlen; /* vlen string */
@ -3693,9 +3693,9 @@ static int test_comp_vlen_strings(const char *fname1, const char *grp_name, int
/* compound6 datatype */
typedef struct comp6_t
{
char *str_array_vlen[VLEN_STR_ARRY_DIM]; /* vlen string array */
const char *str_array_vlen[VLEN_STR_ARRY_DIM]; /* vlen string array */
char str_array_fixlen[FIXLEN_STR_ARRY_DIM][FIXLEN_STR_ARRY_SIZE]; /* fixed len string array */
char *str_vlen_array_again[VLEN_STR_ARRY_DIM]; /* vlen string array */
const char *str_vlen_array_again[VLEN_STR_ARRY_DIM]; /* vlen string array */
char str_fixlen_array_again[FIXLEN_STR_ARRY_DIM][FIXLEN_STR_ARRY_SIZE]; /* fixed len string array */
char *str_vlen; /* vlen string */
char str_fixlen[FIXLEN_STR_SIZE]; /* fixed len string */
@ -3708,8 +3708,8 @@ static int test_comp_vlen_strings(const char *fname1, const char *grp_name, int
{
char str_array_fixlen[FIXLEN_STR_ARRY_DIM][FIXLEN_STR_ARRY_SIZE]; /* fixed len string array */
char str_fixlen_array_again[FIXLEN_STR_ARRY_DIM][FIXLEN_STR_ARRY_SIZE]; /* fixed len string array */
char *str_array_vlen[VLEN_STR_ARRY_DIM]; /* vlen string array */
char *str_vlen_array_again[VLEN_STR_ARRY_DIM]; /* vlen string array */
const char *str_array_vlen[VLEN_STR_ARRY_DIM]; /* vlen string array */
const char *str_vlen_array_again[VLEN_STR_ARRY_DIM]; /* vlen string array */
char str_fixlen[FIXLEN_STR_SIZE]; /* fixed len string */
char str_fixlen_repeat[FIXLEN_STR_SIZE]; /* fixed len string */
char *str_vlen; /* vlen string */
@ -3720,9 +3720,9 @@ static int test_comp_vlen_strings(const char *fname1, const char *grp_name, int
typedef struct comp8_t
{
char str_array_fixlen[FIXLEN_STR_ARRY_DIM][FIXLEN_STR_ARRY_SIZE]; /* fixed len string array */
char *str_array_vlen[VLEN_STR_ARRY_DIM]; /* vlen string array */
const char *str_array_vlen[VLEN_STR_ARRY_DIM]; /* vlen string array */
char str_fixlen_array_again[FIXLEN_STR_ARRY_DIM][FIXLEN_STR_ARRY_SIZE]; /* fixed len string array */
char *str_vlen_array_again[VLEN_STR_ARRY_DIM]; /* vlen string array */
const char *str_vlen_array_again[VLEN_STR_ARRY_DIM]; /* vlen string array */
char str_fixlen[FIXLEN_STR_SIZE]; /* fixed len string */
char *str_vlen; /* vlen string */
char str_fixlen_repeat[FIXLEN_STR_SIZE]; /* fixed len string */
@ -3734,8 +3734,8 @@ static int test_comp_vlen_strings(const char *fname1, const char *grp_name, int
{
char str_array_fixlen[FIXLEN_STR_ARRY_DIM][FIXLEN_STR_ARRY_SIZE]; /* fixed len string array */
char str_fixlen_array_again[FIXLEN_STR_ARRY_DIM][FIXLEN_STR_ARRY_SIZE]; /* fixed len string array */
char *str_array_vlen[VLEN_STR_ARRY_DIM]; /* vlen string array */
char *str_vlen_array_again[VLEN_STR_ARRY_DIM]; /* vlen string array */
const char *str_array_vlen[VLEN_STR_ARRY_DIM]; /* vlen string array */
const char *str_vlen_array_again[VLEN_STR_ARRY_DIM]; /* vlen string array */
char str_fixlen[FIXLEN_STR_SIZE]; /* fixed len string */
int int_data1;
hobj_ref_t objref1; /* reference */
@ -3768,7 +3768,7 @@ static int test_comp_vlen_strings(const char *fname1, const char *grp_name, int
hid_t sid_vlen_str_array=0; /* dataspace ID */
hid_t tid_vlen_str_array_pre=0; /* datatype ID */
hid_t tid_vlen_str_array=0; /* datatype ID */
char *vlen_str_array_buf[VLEN_STR_ARRY_DIM]= {
const char *vlen_str_array_buf[VLEN_STR_ARRY_DIM]= {
"1 - Variable length string Array",
"2 - Testing variable length string array in compound type",
"3 - Four score and seven\n years ago our forefathers brought forth on this continent a new nation,"
@ -5343,7 +5343,6 @@ static hid_t mkstr(int size, H5T_str_t pad) {
*-------------------------------------------------------------------------*/
static void test_objs_strings(const char *fname1, const char *fname2)
{
herr_t status = SUCCEED;
hid_t fid1=0;
hid_t fid2=0;
hid_t dataset=0;
@ -5398,7 +5397,6 @@ static void test_objs_strings(const char *fname1, const char *fname2)
if (fid1 < 0)
{
fprintf(stderr, "Error: %s> H5Fcreate failed.\n", fname1);
status = FAIL;
goto out;
}
@ -5407,7 +5405,6 @@ static void test_objs_strings(const char *fname1, const char *fname2)
if (fid2 < 0)
{
fprintf(stderr, "Error: %s> H5Fcreate failed.\n", fname2);
status = FAIL;
goto out;
}

View File

@ -3479,7 +3479,7 @@ static void gent_array8(void)
unsigned int i;
/* Allocate data buffer */
wdata = HDmalloc(F64_DIM1 * sizeof(int));
wdata = (int *)HDmalloc(F64_DIM1 * sizeof(int));
HDassert(wdata);
/*
@ -10318,7 +10318,6 @@ static void gent_udfilter(void)
hid_t dcpl; /* dataset creation property list */
hid_t dsid; /* dataset ID */
hid_t sid; /* dataspace ID */
hid_t tid; /* datatype ID */
hsize_t dims1[RANK] = {DIM1,DIM2};
hsize_t chunk_dims[RANK] = {CDIM1,CDIM2};

View File

@ -266,7 +266,7 @@ int main (void)
fname = H5REPACK_FSPACE_FNAMES[j];
if(h5repack_init(&pack_options, 0, FALSE) < 0)
GOERROR;
pack_options.fs_strategy = -1; /* "FSM_AGGR" specified via -S FSM_AGGR */
pack_options.fs_strategy = (H5F_fspace_strategy_t)-1; /* "FSM_AGGR" specified via -S FSM_AGGR */
pack_options.fs_threshold = -1; /* "0" specified via -T 0 */
if(h5repack(fname, FSPACE_OUT, &pack_options) < 0)
GOERROR;