Clean up minor inconsistencies in pg_attribute_printf() usage.

For some reason we'd never decorated pg_v*printf() with
pg_attribute_printf() annotations.  There is a convention for
how to label va_list-using printf functions (write zero for the
second argument), and we use that liberally elsewhere in the
code, but these core functions lacked it.  It's not clear how
much useful checking the compiler can do for calls of these,
but we might as well add the annotations.

Also, sync win32security.c's log_error() with our normal convention
that pg_attribute_printf must be attached to a function's declaration
not definition.  Apparently this file is only compiled with compilers
that aren't picky about that, but still it'd be better to be
consistent.

No back-patch since there's little reason to think we would catch
anything.

Discussion: https://postgr.es/m/3492412.1663283395@sss.pgh.pa.us
This commit is contained in:
Tom Lane 2022-09-16 11:10:48 -04:00
parent b2451385cb
commit eacbe94ab1
2 changed files with 7 additions and 7 deletions

View File

@ -204,13 +204,13 @@ extern unsigned char pg_ascii_tolower(unsigned char ch);
#undef printf
#endif
extern int pg_vsnprintf(char *str, size_t count, const char *fmt, va_list args);
extern int pg_vsnprintf(char *str, size_t count, const char *fmt, va_list args) pg_attribute_printf(3, 0);
extern int pg_snprintf(char *str, size_t count, const char *fmt,...) pg_attribute_printf(3, 4);
extern int pg_vsprintf(char *str, const char *fmt, va_list args);
extern int pg_vsprintf(char *str, const char *fmt, va_list args) pg_attribute_printf(2, 0);
extern int pg_sprintf(char *str, const char *fmt,...) pg_attribute_printf(2, 3);
extern int pg_vfprintf(FILE *stream, const char *fmt, va_list args);
extern int pg_vfprintf(FILE *stream, const char *fmt, va_list args) pg_attribute_printf(2, 0);
extern int pg_fprintf(FILE *stream, const char *fmt,...) pg_attribute_printf(2, 3);
extern int pg_vprintf(const char *fmt, va_list args);
extern int pg_vprintf(const char *fmt, va_list args) pg_attribute_printf(1, 0);
extern int pg_printf(const char *fmt,...) pg_attribute_printf(1, 2);
/*

View File

@ -17,14 +17,14 @@
#include "postgres_fe.h"
#endif
static void log_error(const char *fmt,...) pg_attribute_printf(1, 2);
/*
* Utility wrapper for frontend and backend when reporting an error
* message.
*/
static
pg_attribute_printf(1, 2)
void
static void
log_error(const char *fmt,...)
{
va_list ap;