From 1b587e48d9bb95e6e7d9b3f482a9e4460b6ab130 Mon Sep 17 00:00:00 2001
From: Tony Finch <dot@dotat.at>
Date: Thu, 3 Mar 2011 15:08:05 +0000
Subject: [PATCH] Another valgrind.h portability fix.

C89 compilers do not support variable argument macros.
Our copy of valgrind.h now differs from upstream.

Reported-by: Heiko Schlichting <heiko.schlichting@fu-berlin.de>
---
 doc/doc-txt/ChangeLog | 3 +++
 src/src/valgrind.h    | 9 +++++++--
 2 files changed, 10 insertions(+), 2 deletions(-)

diff --git a/doc/doc-txt/ChangeLog b/doc/doc-txt/ChangeLog
index 317f78ca9..853f3a573 100644
--- a/doc/doc-txt/ChangeLog
+++ b/doc/doc-txt/ChangeLog
@@ -83,6 +83,9 @@ PP/16 Make DISABLE_DKIM build knob functional.
 NM/06 Bugzilla 968: child_open_uid: restore default SIGPIPE handler
       Patch by Simon Arlott
 
+TF/03 Fix valgrind.h portability to C89 compilers that do not support
+      variable argument macros. Our copy now differs from upstream.
+
 
 Exim version 4.74
 -----------------
diff --git a/src/src/valgrind.h b/src/src/valgrind.h
index 0bae0aa13..4d41690ab 100644
--- a/src/src/valgrind.h
+++ b/src/src/valgrind.h
@@ -4417,8 +4417,13 @@ vg_VALGRIND_DO_CLIENT_REQUEST_EXPR(uintptr_t _zzq_default,
 
 #if defined(NVALGRIND)
 
-#  define VALGRIND_PRINTF(...)
-#  define VALGRIND_PRINTF_BACKTRACE(...)
+/* In Exim the following two lines have been changed from the original
+   version for portability to C89 compilers that don't support variable
+   argument macros. We don't use these macros so it doesn't matter much what
+   we do with them, but the following will work OK in most situations though
+   it may cause complaints about expressions without side-effects. */
+#  define VALGRIND_PRINTF (void)
+#  define VALGRIND_PRINTF_BACKTRACE (void)
 
 #else /* NVALGRIND */
 
-- 
2.30.2