]> git.ipfire.org Git - thirdparty/valgrind.git/commitdiff
add format argument checking. might find useful portability issues
authorDirk Mueller <daywalker@users.sourceforge.net>
Mon, 24 Sep 2007 13:25:24 +0000 (13:25 +0000)
committerDirk Mueller <daywalker@users.sourceforge.net>
Mon, 24 Sep 2007 13:25:24 +0000 (13:25 +0000)
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@6909

include/pub_tool_libcprint.h

index 9b706b9bfd2fff5d7b9d2d10fc8dfe892f7f23a6..33ede5f598839cbfa088eb02798315de0832b79c 100644 (file)
    Basic printing
    ------------------------------------------------------------------ */
 
+#ifdef __GNUC__
+#   define PRINTF_CHECK(x,y) __attribute__((format(__printf__, x, y)))
+#else
+#   define PRINTF_CHECK(x,y) /* x, y */
+#endif
+
 /* Note that they all output to the file descriptor given by the
  * --log-fd/--log-file/--log-socket argument, which defaults to 2 (stderr).
  * Hence no need for VG_(fprintf)().
  */
-extern UInt VG_(printf)   ( const HChar *format, ... );
+
+extern UInt VG_(printf)   ( const HChar *format, ... ) PRINTF_CHECK(1,2);
 extern UInt VG_(vprintf)  ( const HChar *format, va_list vargs );
 /* too noisy ...  __attribute__ ((format (printf, 1, 2))) ; */
 
-extern UInt VG_(sprintf)  ( Char* buf, const HChar* format, ... );
+extern UInt VG_(sprintf)  ( Char* buf, const HChar* format, ... ) PRINTF_CHECK(2,3);
 extern UInt VG_(vsprintf) ( Char* buf, const HChar* format, va_list vargs );
 
 extern UInt VG_(snprintf) ( Char* buf, Int size, 
-                                       const HChar *format, ... );
+                                       const HChar *format, ... ) PRINTF_CHECK(3,4);
 extern UInt VG_(vsnprintf)( Char* buf, Int size, 
                                        const HChar *format, va_list vargs );