summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDana Robinson <derobins@hdfgroup.org>2015-08-03 23:32:59 (GMT)
committerDana Robinson <derobins@hdfgroup.org>2015-08-03 23:32:59 (GMT)
commitbeb4bff6686729d6eb91c6cb8014937341b42665 (patch)
tree7d6e7f8abe9400b3f78fec7013ed7979b2df62a1
parentff5070329c34c74082570c925e2a2b9089b99b29 (diff)
downloadhdf5-beb4bff6686729d6eb91c6cb8014937341b42665.zip
hdf5-beb4bff6686729d6eb91c6cb8014937341b42665.tar.gz
hdf5-beb4bff6686729d6eb91c6cb8014937341b42665.tar.bz2
[svn-r27458] Merge of r27407 from trunk. (code cleanup for Solaris debugging)
Updated the H5_ATTR_* macros. - Updated the preprocessor logic that defines the H5_ATTR_* macros. The Solaris Studio compiler understands __attribute__ but not the specific attributes that we use. The H5_ATTR_* macros are now defined as blank with that compiler which significantly cleans up the warnings, making debugging easier. - Replaced a few lingering __attribute__ macros with H5_ATTR_* markup. Tested on: h5committest Solaris w/ Solaris Studio (emu)
-rw-r--r--src/H5api_adpt.h5
-rw-r--r--test/h5test.h2
-rw-r--r--tools/perform/chunk.c4
-rw-r--r--tools/perform/overhead.c3
4 files changed, 9 insertions, 5 deletions
diff --git a/src/H5api_adpt.h b/src/H5api_adpt.h
index 52167d0..74066f7 100644
--- a/src/H5api_adpt.h
+++ b/src/H5api_adpt.h
@@ -24,13 +24,16 @@
/*
* Does the compiler support the __attribute__(()) syntax? It's no
* big deal if we don't.
+ *
+ * Note that Solaris Studio supports attribute, but does not support the
+ * attributes we use.
*/
#ifdef __cplusplus
# define H5_ATTR_FORMAT(X,Y,Z) /*void*/
# define H5_ATTR_UNUSED /*void*/
# define H5_ATTR_NORETURN /*void*/
#else /* __cplusplus */
-#ifdef H5_HAVE_ATTRIBUTE
+#if defined(H5_HAVE_ATTRIBUTE) && !defined(__SUNPRO_C)
# define H5_ATTR_FORMAT(X,Y,Z) __attribute__((format(X, Y, Z)))
# define H5_ATTR_UNUSED __attribute__((unused))
# define H5_ATTR_NORETURN __attribute__((noreturn))
diff --git a/test/h5test.h b/test/h5test.h
index d31e963..19524a9 100644
--- a/test/h5test.h
+++ b/test/h5test.h
@@ -175,7 +175,7 @@ H5TEST_DLL void ParseTestVerbosity(char *argv);
H5TEST_DLL int GetTestNumErrs(void);
H5TEST_DLL void IncTestNumErrs(void);
H5TEST_DLL const void *GetTestParameters(void);
-H5TEST_DLL int TestErrPrintf(const char *format, ...) __attribute__ ((format (printf, 1, 2)));
+H5TEST_DLL int TestErrPrintf(const char *format, ...) H5_ATTR_FORMAT(printf, 1, 2);
H5TEST_DLL void SetTest(const char *testname, int action);
H5TEST_DLL void TestAlarmOn(void);
H5TEST_DLL void TestAlarmOff(void);
diff --git a/tools/perform/chunk.c b/tools/perform/chunk.c
index 625809a..74bcc46 100644
--- a/tools/perform/chunk.c
+++ b/tools/perform/chunk.c
@@ -33,8 +33,8 @@
# include <string.h>
#endif
-
-#if !defined(H5_HAVE_ATTRIBUTE) || defined __cplusplus
+/* Solaris Studio defines attribute, but for the attributes we need */
+#if !defined(H5_HAVE_ATTRIBUTE) || defined __cplusplus || defined(__SUNPRO_C)
# undef __attribute__
# define __attribute__(X) /*void*/
# define H5_ATTR_UNUSED /*void*/
diff --git a/tools/perform/overhead.c b/tools/perform/overhead.c
index 0e9166c..0288ffa 100644
--- a/tools/perform/overhead.c
+++ b/tools/perform/overhead.c
@@ -46,7 +46,8 @@
# include <io.h>
#endif
-#ifndef H5_HAVE_ATTRIBUTE
+/* Solaris Studio defines attribute, but for the attributes we need */
+#if !defined(H5_HAVE_ATTRIBUTE) || defined __cplusplus || defined(__SUNPRO_C)
# undef __attribute__
# define __attribute__(X) /*void*/
# define H5_ATTR_UNUSED /*void*/