mirror of
https://github.com/HDFGroup/hdf5.git
synced 2025-03-01 16:28:09 +08:00
Merge branch 'develop' into compat_feature_flag
This commit is contained in:
commit
343b53d64f
@ -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
|
||||
|
@ -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"
|
||||
|
695
config/gnu-flags
695
config/gnu-flags
@ -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
|
||||
|
@ -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
|
||||
|
@ -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 */
|
||||
|
@ -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)
|
||||
|
@ -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;
|
||||
|
@ -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
|
||||
|
@ -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 {
|
||||
|
@ -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 */
|
||||
|
@ -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);
|
||||
|
@ -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);
|
||||
|
@ -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:
|
||||
------
|
||||
|
178
src/H5Dint.c
178
src/H5Dint.c
@ -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() */
|
||||
|
||||
|
@ -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)
|
||||
|
@ -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;
|
||||
|
@ -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
|
||||
|
@ -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)
|
||||
|
@ -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
|
||||
|
||||
|
@ -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")
|
||||
|
@ -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 */
|
||||
|
@ -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)
|
||||
|
@ -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")
|
||||
|
@ -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 */
|
||||
|
@ -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"
|
||||
|
@ -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
|
||||
|
@ -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 */
|
||||
|
||||
/*
|
||||
*-------------------------------------------------------------------------
|
||||
|
@ -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];
|
||||
|
||||
|
@ -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 */
|
||||
|
@ -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;
|
||||
|
||||
|
@ -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"));
|
||||
|
@ -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) {
|
||||
|
@ -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("]" );
|
||||
}
|
||||
|
@ -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 {
|
||||
|
@ -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;
|
||||
|
@ -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");
|
||||
}
|
||||
|
@ -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 */
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
|
@ -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};
|
||||
|
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user