Add printf attribute to vararg error functions
authorMarko Kreen <markokr@gmail.com>
Tue, 6 Mar 2012 14:39:38 +0000 (16:39 +0200)
committerMarko Kreen <markokr@gmail.com>
Wed, 7 Mar 2012 20:57:27 +0000 (22:57 +0200)
src/plproxy.h

index 4dd582eaa041bebacc386aea5f224728e3ce2ebe..72b5ae4c9f2a375b4b3a89932a0a550a350432c0 100644 (file)
 #define PG_DETOAST_DATUM_PACKED(x) PG_DETOAST_DATUM(x)
 #endif
 
+#ifndef PG_PRINTF_ATTRIBUTE
+#ifdef WIN32
+#define PG_PRINTF_ATTRIBUTE gnu_printf
+#else
+#define PG_PRINTF_ATTRIBUTE printf
+#endif
+#endif
+
 /*
  * Determine if this argument is to SPLIT
  */
@@ -336,7 +344,8 @@ typedef struct ProxyFunction
 
 /* main.c */
 Datum          plproxy_call_handler(PG_FUNCTION_ARGS);
-void           plproxy_error(ProxyFunction *func, const char *fmt,...);
+void           plproxy_error(ProxyFunction *func, const char *fmt, ...)
+       __attribute__((format(PG_PRINTF_ATTRIBUTE, 2, 3)));
 void           plproxy_remote_error(ProxyFunction *func, ProxyConnection *conn, const PGresult *res, bool iserr);
 
 /* function.c */
@@ -361,7 +370,8 @@ void                plproxy_yylex_startup(void);
 
 /* parser.y */
 void           plproxy_run_parser(ProxyFunction *func, const char *body, int len);
-void           plproxy_yyerror(const char *fmt,...);
+void           plproxy_yyerror(const char *fmt, ...)
+       __attribute__((format(PG_PRINTF_ATTRIBUTE, 1, 2)));
 
 /* type.c */
 ProxyComposite *plproxy_composite_info(ProxyFunction *func, TupleDesc tupdesc);