From 3f329101d69ce48e797409c9b7bf5f9bf736bd74 Mon Sep 17 00:00:00 2001 From: Arnaud Giersch Date: Mon, 4 Oct 2021 13:28:01 +0200 Subject: [PATCH] Move declarations in smpi_helpers_internal.h. --- include/smpi/smpi_helpers.h | 13 ------------- include/smpi/smpi_helpers_internal.h | 18 +++++++++++++++++- 2 files changed, 17 insertions(+), 14 deletions(-) diff --git a/include/smpi/smpi_helpers.h b/include/smpi/smpi_helpers.h index 3e94332278..9760971ee0 100644 --- a/include/smpi/smpi_helpers.h +++ b/include/smpi/smpi_helpers.h @@ -33,25 +33,12 @@ #define getopt_long(x, y, z, a, b) smpi_getopt_long((x), (y), (z), (a), (b)) #define getopt_long_only(x, y, z, a, b) smpi_getopt_long_only((x), (y), (z), (a), (b)) #ifndef SMPI_NO_OVERRIDE_MALLOC -#ifdef __cplusplus -namespace std { - extern "C" void* smpi_shared_malloc_intercept(size_t size, const char* file, int line); - extern "C" void* smpi_shared_calloc_intercept(size_t num_elm, size_t elem_size, const char* file, int line); - extern "C" void* smpi_shared_realloc_intercept(void* data, size_t size, const char* file, int line); - extern "C" void smpi_shared_free(void* ptr); -} -#endif #define malloc(x) smpi_shared_malloc_intercept((x), __FILE__, __LINE__) #define calloc(x, y) smpi_shared_calloc_intercept((x), (y), __FILE__, __LINE__) #define realloc(x, y) smpi_shared_realloc_intercept((x), (y), __FILE__, __LINE__) #define free(x) smpi_shared_free(x) #endif -#ifdef __cplusplus -namespace std { - extern "C" __attribute__((noreturn)) void smpi_exit(int status); -} -#endif #define exit(x) smpi_exit(x) #endif diff --git a/include/smpi/smpi_helpers_internal.h b/include/smpi/smpi_helpers_internal.h index a55d1281b6..09c96852c0 100644 --- a/include/smpi/smpi_helpers_internal.h +++ b/include/smpi/smpi_helpers_internal.h @@ -38,8 +38,24 @@ void* smpi_shared_malloc_intercept(size_t size, const char* file, int line); void* smpi_shared_calloc_intercept(size_t num_elm, size_t elem_size, const char* file, int line); void* smpi_shared_realloc_intercept(void* data, size_t size, const char* file, int line); void smpi_shared_free(void* data); -void __attribute__((noreturn)) smpi_exit(int status); +#ifdef __cplusplus +[[noreturn]] // c++11 +#else +_Noreturn // c11 +#endif +void smpi_exit(int status); #ifdef __cplusplus } // extern "C" #endif + +#ifdef __cplusplus +namespace std { +extern "C" void* smpi_shared_malloc_intercept(size_t size, const char* file, int line); +extern "C" void* smpi_shared_calloc_intercept(size_t num_elm, size_t elem_size, const char* file, int line); +extern "C" void* smpi_shared_realloc_intercept(void* data, size_t size, const char* file, int line); +extern "C" void smpi_shared_free(void* ptr); + +extern "C" [[noreturn]] void smpi_exit(int status); +} // namespace std +#endif #endif -- 2.20.1