On Thu, Mar 3, 2011 at 7:28 PM, Tony Finch <d...@dotat.at> wrote:
> On Thu, 3 Mar 2011, Bart Van Assche wrote:
>>
>> Does the patch below help ?
>
> Mostly, except it exposes an __attribute__ clause which also upsets
> standard-C compilers.
>
> I did the following patch which has the disadvantage of causing warnings
> about expressions without side-effects.
>
> [ ... ]

Does the second version of this patch (see below) work better ?

Index: include/valgrind.h
===================================================================
--- include/valgrind.h  (revision 11577)
+++ include/valgrind.h  (working copy)
@@ -4415,14 +4415,7 @@
    is the number of characters printed, excluding the "**<pid>** " part at the
    start and the backtrace (if present). */

-#if defined(NVALGRIND)
-
-#  define VALGRIND_PRINTF(...)
-#  define VALGRIND_PRINTF_BACKTRACE(...)
-
-#else /* NVALGRIND */
-
-#if !defined(_MSC_VER)
+#if defined(__GNUC__) || defined(__INTEL_COMPILER)
 /* Modern GCC will optimize the static routine out if unused,
    and unused attribute will shut down warnings about it.  */
 static int VALGRIND_PRINTF(const char *format, ...)
@@ -4434,6 +4427,9 @@
 #endif
 VALGRIND_PRINTF(const char *format, ...)
 {
+#if defined(NVALGRIND)
+   return 0;
+#else /* NVALGRIND */
    unsigned long _qzz_res;
    va_list vargs;
    va_start(vargs, format);
@@ -4452,9 +4448,10 @@
 #endif
    va_end(vargs);
    return (int)_qzz_res;
+#endif /* NVALGRIND */
 }

-#if !defined(_MSC_VER)
+#if defined(__GNUC__) || defined(__INTEL_COMPILER)
 static int VALGRIND_PRINTF_BACKTRACE(const char *format, ...)
    __attribute__((format(__printf__, 1, 2), __unused__));
 #endif
@@ -4464,6 +4461,9 @@
 #endif
 VALGRIND_PRINTF_BACKTRACE(const char *format, ...)
 {
+#if defined(NVALGRIND)
+   return 0;
+#else /* NVALGRIND */
    unsigned long _qzz_res;
    va_list vargs;
    va_start(vargs, format);
@@ -4482,11 +4482,10 @@
 #endif
    va_end(vargs);
    return (int)_qzz_res;
+#endif /* NVALGRIND */
 }

-#endif /* NVALGRIND */

-
 /* These requests allow control to move from the simulated CPU to the
    real CPU, calling an arbitary function.

------------------------------------------------------------------------------
Free Software Download: Index, Search & Analyze Logs and other IT data in 
Real-Time with Splunk. Collect, index and harness all the fast moving IT data 
generated by your applications, servers and devices whether physical, virtual
or in the cloud. Deliver compliance at lower cost and gain new business 
insights. http://p.sf.net/sfu/splunk-dev2dev 
_______________________________________________
Valgrind-users mailing list
Valgrind-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/valgrind-users

Reply via email to