git://git.exim.org
/
exim.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
build: use pkg-config for i18n
[exim.git]
/
src
/
src
/
mytypes.h
diff --git
a/src/src/mytypes.h
b/src/src/mytypes.h
index 49fed0a9d53484998b1824fa37a64d1448ba880f..598569d00462512eeb9f13022073a3a708b974e0 100644
(file)
--- a/
src/src/mytypes.h
+++ b/
src/src/mytypes.h
@@
-2,9
+2,10
@@
* Exim - an Internet mail transport agent *
*************************************************/
* Exim - an Internet mail transport agent *
*************************************************/
-/* Copyright (c) The Exim Maintainers 2020 - 202
2
*/
+/* Copyright (c) The Exim Maintainers 2020 - 202
3
*/
/* Copyright (c) University of Cambridge 1995 - 2018 */
/* See the file NOTICE for conditions of use and distribution. */
/* Copyright (c) University of Cambridge 1995 - 2018 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-or-later */
/* This header file contains type definitions and macros that I use as
/* This header file contains type definitions and macros that I use as
@@
-29,21
+30,23
@@
local_scan.h includes it and exim.h includes them both (to get this earlier). */
#endif
#endif
-/*
If gcc is being used to compile Exim, we can use its facility for checking
-the arguments of printf-like functions. This is done by a macro.
-OpenBSD has unfortunately taken to objecting to use of %n in printf
-
so we have to give up on all of the available parameter check
ing. */
+/*
We gave up on trying to get compilers to check on printf-like functions
+because they are both whiney about value sizes where they cannot do decent
+static analysis, and incapable of handling extensions to printf formats.
+
The annotation on functions is still in place but does noth
ing. */
#if defined(__GNUC__) || defined(__clang__)
#if defined(__GNUC__) || defined(__clang__)
-# ifndef __OpenBSD__
-# define PRINTF_FUNCTION(A,B) __attribute__((format(printf,A,B)))
-# endif
+/* # define PRINTF_FUNCTION(A,B) __attribute__((format(printf,A,B))) */
# define ARG_UNUSED __attribute__((__unused__))
# define FUNC_MAYBE_UNUSED __attribute__((__unused__))
# define WARN_UNUSED_RESULT __attribute__((__warn_unused_result__))
# define ALLOC __attribute__((malloc))
# define ARG_UNUSED __attribute__((__unused__))
# define FUNC_MAYBE_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))
# define NORETURN __attribute__((noreturn))
+# ifndef __clang__
+# define ALLOC_SIZE(A) __attribute__((alloc_size(A)))
+# else
+# define ALLOC_SIZE(A) /**/
+# endif
#else
# define ARG_UNUSED /**/
# define FUNC_MAYBE_UNUSED /**/
#else
# define ARG_UNUSED /**/
# define FUNC_MAYBE_UNUSED /**/
@@
-114,7
+117,7
@@
functions that are called quite often; for other calls to external libraries
#define Urename(s,t) rename(CCS(s),CCS(t))
#define Ustat(s,t) stat(CCS(s),t)
#define Ustrchr(s,n) US strchr(CCS(s),n)
#define Urename(s,t) rename(CCS(s),CCS(t))
#define Ustat(s,t) stat(CCS(s),t)
#define Ustrchr(s,n) US strchr(CCS(s),n)
-#define
CUstrchr(s,n) CUS strchr
(CCS(s),n)
+#define
Ustrchrnul(s,n) US strchrnul
(CCS(s),n)
#define CUstrerror(n) CUS strerror(n)
#define Ustrcmp(s,t) strcmp(CCS(s),CCS(t))
#define Ustrcpy_nt(s,t) strcpy(CS s, CCS t) /* no taint check */
#define CUstrerror(n) CUS strerror(n)
#define Ustrcmp(s,t) strcmp(CCS(s),CCS(t))
#define Ustrcpy_nt(s,t) strcpy(CS s, CCS t) /* no taint check */