diff --git a/modules/libcom/src/misc/cantProceed.h b/modules/libcom/src/misc/cantProceed.h index 2150ead3f..5fe4e748f 100644 --- a/modules/libcom/src/misc/cantProceed.h +++ b/modules/libcom/src/misc/cantProceed.h @@ -67,7 +67,7 @@ void cantProceed( * Will never return NULL otherwise. */ LIBCOM_API void * callocMustSucceed(size_t count, size_t size, - const char *errorMessage); + const char *errorMessage) EPICS_MALLOC; /** \brief A malloc() which suspends on error. * \param size Size of block to allocate. * \param errorMessage Context added to logged error message @@ -76,7 +76,8 @@ LIBCOM_API void * callocMustSucceed(size_t count, size_t size, * Will always return NULL for a zero length allocation. * Will never return NULL otherwise. */ -LIBCOM_API void * mallocMustSucceed(size_t size, const char *errorMessage); +LIBCOM_API void * mallocMustSucceed(size_t size, const char *errorMessage) + EPICS_MALLOC; /** @} */ #ifdef __cplusplus diff --git a/modules/libcom/src/osi/compiler/clang/compilerSpecific.h b/modules/libcom/src/osi/compiler/clang/compilerSpecific.h index bf2474a55..1bdd07eec 100644 --- a/modules/libcom/src/osi/compiler/clang/compilerSpecific.h +++ b/modules/libcom/src/osi/compiler/clang/compilerSpecific.h @@ -63,4 +63,9 @@ */ #define EPICS_NORETURN __attribute__((noreturn)) +/* + * malloc marker + */ +#define EPICS_MALLOC __attribute__((__malloc__)) + #endif /* ifndef compilerSpecific_h */ diff --git a/modules/libcom/src/osi/compiler/gcc/compilerSpecific.h b/modules/libcom/src/osi/compiler/gcc/compilerSpecific.h index 80b72012f..37b2fe0a7 100644 --- a/modules/libcom/src/osi/compiler/gcc/compilerSpecific.h +++ b/modules/libcom/src/osi/compiler/gcc/compilerSpecific.h @@ -69,4 +69,9 @@ #define EPICS_NORETURN __attribute__((noreturn)) #endif +/* + * malloc marker + */ +#define EPICS_MALLOC __attribute__((__malloc__)) + #endif /* ifndef compilerSpecific_h */ diff --git a/modules/libcom/src/osi/compilerDependencies.h b/modules/libcom/src/osi/compilerDependencies.h index 55762ee20..cf172531e 100644 --- a/modules/libcom/src/osi/compilerDependencies.h +++ b/modules/libcom/src/osi/compilerDependencies.h @@ -56,6 +56,10 @@ # define EPICS_NORETURN #endif +#ifndef EPICS_MALLOC +# define EPICS_MALLOC +#endif + #ifndef EPICS_FUNCTION #if (defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901)) || (defined(__cplusplus) && __cplusplus>=201103L) # define EPICS_FUNCTION __func__