summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorDana Robinson <derobins@hdfgroup.org>2015-07-18 05:40:06 (GMT)
committerDana Robinson <derobins@hdfgroup.org>2015-07-18 05:40:06 (GMT)
commit94a6e02b3dfde5a226b124177c33526080d6bb86 (patch)
tree4e27e41f7437c18798faf41201fe62c9e31c50e4 /src
parent12b86abf18d831a2eeb337146187e220a50fafb2 (diff)
downloadhdf5-94a6e02b3dfde5a226b124177c33526080d6bb86.zip
hdf5-94a6e02b3dfde5a226b124177c33526080d6bb86.tar.gz
hdf5-94a6e02b3dfde5a226b124177c33526080d6bb86.tar.bz2
[svn-r27407] 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)
Diffstat (limited to 'src')
-rw-r--r--src/H5Eprivate.h2
-rw-r--r--src/H5api_adpt.h5
2 files changed, 5 insertions, 2 deletions
diff --git a/src/H5Eprivate.h b/src/H5Eprivate.h
index 2065b08..ba17ada 100644
--- a/src/H5Eprivate.h
+++ b/src/H5Eprivate.h
@@ -186,7 +186,7 @@ H5_DLL herr_t H5E_init(void);
H5_DLL herr_t H5E_push_stack(H5E_t *estack, const char *file, const char *func,
unsigned line, hid_t cls_id, hid_t maj_id, hid_t min_id, const char *desc);
H5_DLL herr_t H5E_printf_stack(H5E_t *estack, const char *file, const char *func,
- unsigned line, hid_t cls_id, hid_t maj_id, hid_t min_id, const char *fmt, ...)__attribute__((format (printf, 8, 9)));
+ unsigned line, hid_t cls_id, hid_t maj_id, hid_t min_id, const char *fmt, ...)H5_ATTR_FORMAT(printf, 8, 9);
H5_DLL herr_t H5E_clear_stack(H5E_t *estack);
H5_DLL herr_t H5E_dump_api_stack(hbool_t is_api);
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))