Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Move declarations in smpi_helpers_internal.h.
authorArnaud Giersch <arnaud.giersch@univ-fcomte.fr>
Mon, 4 Oct 2021 11:28:01 +0000 (13:28 +0200)
committerArnaud Giersch <arnaud.giersch@univ-fcomte.fr>
Tue, 5 Oct 2021 21:05:33 +0000 (23:05 +0200)
include/smpi/smpi_helpers.h
include/smpi/smpi_helpers_internal.h

index 3e94332..9760971 100644 (file)
 #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
index a55d128..09c9685 100644 (file)
@@ -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