more function attribute annotation
[exim.git] / src / src / mytypes.h
index b288a32cbcb8e47c6cb54489a3b52a153f5c022d..be11240bf711f0fe4fbf34f52b9c91aff1388dbb 100644 (file)
@@ -2,7 +2,7 @@
 *     Exim - an Internet mail transport agent    *
 *************************************************/
 
-/* Copyright (c) University of Cambridge 1995 - 2015 */
+/* Copyright (c) University of Cambridge 1995 - 2018 */
 /* See the file NOTICE for conditions of use and distribution. */
 
 
@@ -30,11 +30,19 @@ local_scan.h includes it and exim.h includes them both (to get this earlier). */
 the arguments of printf-like functions. This is done by a macro. */
 
 #if defined(__GNUC__) || defined(__clang__)
-# define PRINTF_FUNCTION(A,B)  __attribute__((format(printf,A,B)))
-# define ARG_UNUSED  __attribute__((__unused__))
+# define PRINTF_FUNCTION(A,B)  __attribute__((format(printf,A,B)))
+# define ARG_UNUSED            __attribute__((__unused__))
+# define WARN_UNUSED_RESULT    __attribute__((__warn_unused_result__))
+# define ALLOC                 __attribute__((malloc))
+# define ALLOC_SIZE(A)         __attribute__((alloc_size(A)))
+# define NORETURN              __attribute__((noreturn))
 #else
 # define PRINTF_FUNCTION(A,B)
-# define ARG_UNUSED  /**/
+# define ARG_UNUSED            /**/
+# define WARN_UNUSED_RESULT    /**/
+# define ALLOC                 /**/
+# define ALLOC_SIZE(A)         /**/
+# define NORETURN              /**/
 #endif
 
 #ifdef WANT_DEEPER_PRINTF_CHECKS
@@ -77,7 +85,6 @@ functions that are called quite often; for other calls to external libraries
 #define Uatol(s)           atol(CCS(s))
 #define Uchdir(s)          chdir(CCS(s))
 #define Uchmod(s,n)        chmod(CCS(s),n)
-#define Uchown(s,n,m)      chown(CCS(s),n,m)
 #define Ufgets(b,n,f)      fgets(CS(b),n,f)
 #define Ufopen(s,t)        fopen(CCS(s),CCS(t))
 #define Ulink(s,t)         link(CCS(s),CCS(t))
@@ -113,6 +120,7 @@ functions that are called quite often; for other calls to external libraries
 #define Ustrtol(s,t,b)     strtol(CCS(s),CSS(t),b)
 #define Ustrtoul(s,t,b)    strtoul(CCS(s),CSS(t),b)
 #define Uunlink(s)         unlink(CCS(s))
+
 #endif
 
 /* End of mytypes.h */