diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/H5PLint.c | 21 | ||||
-rw-r--r-- | src/H5PLplugin_cache.c | 15 |
2 files changed, 19 insertions, 17 deletions
diff --git a/src/H5PLint.c b/src/H5PLint.c index bd6bf7d..c887f86 100644 --- a/src/H5PLint.c +++ b/src/H5PLint.c @@ -292,6 +292,17 @@ done: * *------------------------------------------------------------------------- */ +/* NOTE: We turn off -Wpedantic in gcc to quiet a warning about converting + * object pointers to function pointers, which is undefined in ANSI C. + * This is basically unavoidable due to the nature of dlsym() and *is* + * defined in POSIX, so it's fine. + * + * This pragma only needs to surround the assignment of the + * get_plugin_info function pointer, but early (4.4.7, at least) gcc + * only allows diagnostic pragmas to be toggled outside of functions. + */ +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wpedantic" herr_t H5PL__open(const char *path, H5PL_type_t type, int id, hbool_t *success, const void **plugin_info) { @@ -318,19 +329,10 @@ H5PL__open(const char *path, H5PL_type_t type, int id, hbool_t *success, const v HGOTO_DONE(SUCCEED); } - /* Return a handle for the function H5PLget_plugin_info in the dynamic library. * The plugin library is suppose to define this function. - * - * NOTE: We turn off -Wpedantic in gcc to quiet a warning about converting - * object pointers to function pointers, which is undefined in ANSI C. - * This is basically unavoidable due to the nature of dlsym() and *is* - * defined in POSIX, so it's fine. */ -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wpedantic" if (NULL != (get_plugin_info = (H5PL_get_plugin_info_t)H5PL_GET_LIB_FUNC(handle, "H5PLget_plugin_info"))) { -#pragma GCC diagnostic pop const H5Z_class2_t *info; @@ -358,6 +360,7 @@ done: FUNC_LEAVE_NOAPI(ret_value) } /* end H5PL__open() */ +#pragma GCC diagnostic pop /*------------------------------------------------------------------------- diff --git a/src/H5PLplugin_cache.c b/src/H5PLplugin_cache.c index 30a0798..d826ba0 100644 --- a/src/H5PLplugin_cache.c +++ b/src/H5PLplugin_cache.c @@ -250,6 +250,11 @@ done: * *------------------------------------------------------------------------- */ +/* See the other use of H5PL_GET_LIB_FUNC() for an explanation + * for why we disable -Wpedantic here. + */ +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wpedantic" herr_t H5PL__find_plugin_in_cache(const H5PL_search_params_t *search_params, hbool_t *found, const void **plugin_info) { @@ -276,16 +281,9 @@ H5PL__find_plugin_in_cache(const H5PL_search_params_t *search_params, hbool_t *f H5PL_get_plugin_info_t get_plugin_info_function; const H5Z_class2_t *filter_info; - /* Get the "get plugin info" function from the plugin. - * - * See the other use of H5PL_GET_LIB_FUNC() for an explanation - * for why we disable -Wpedantic here. - */ -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wpedantic" + /* Get the "get plugin info" function from the plugin. */ if (NULL == (get_plugin_info_function = (H5PL_get_plugin_info_t)H5PL_GET_LIB_FUNC((H5PL_cache_g[u]).handle, "H5PLget_plugin_info"))) HGOTO_ERROR(H5E_DATATYPE, H5E_CANTGET, FAIL, "can't get function for H5PLget_plugin_info") -#pragma GCC diagnostic pop /* Call the "get plugin info" function */ if (NULL == (filter_info = (const H5Z_class2_t *)(*get_plugin_info_function)())) @@ -305,4 +303,5 @@ H5PL__find_plugin_in_cache(const H5PL_search_params_t *search_params, hbool_t *f done: FUNC_LEAVE_NOAPI(ret_value) } /* end H5PL__find_plugin_in_cache() */ +#pragma GCC diagnostic pop |