diff options
Diffstat (limited to 'src')
59 files changed, 128 insertions, 279 deletions
diff --git a/src/backend/access/transam/xlogreader.c b/src/backend/access/transam/xlogreader.c index 4a51defc529..ba7dfcc0287 100644 --- a/src/backend/access/transam/xlogreader.c +++ b/src/backend/access/transam/xlogreader.c @@ -32,11 +32,7 @@ static bool ValidXLogRecord(XLogReaderState *state, XLogRecord *record, XLogRecPtr recptr); static int ReadPageInternal(XLogReaderState *state, XLogRecPtr pageptr, int reqLen); -static void -report_invalid_record(XLogReaderState *state, const char *fmt,...) -/* This extension allows gcc to check the format string for consistency with - the supplied arguments. */ -pg_attribute_printf(2, 3); +static void report_invalid_record(XLogReaderState *state, const char *fmt,...) pg_attribute_printf(2, 3); static void ResetDecoder(XLogReaderState *state); diff --git a/src/backend/postmaster/autovacuum.c b/src/backend/postmaster/autovacuum.c index 5ccae24b25c..c93b412b297 100644 --- a/src/backend/postmaster/autovacuum.c +++ b/src/backend/postmaster/autovacuum.c @@ -281,8 +281,8 @@ int AutovacuumLauncherPid = 0; static pid_t avlauncher_forkexec(void); static pid_t avworker_forkexec(void); #endif -NON_EXEC_STATIC void AutoVacWorkerMain(int argc, char *argv[]) pg_attribute_noreturn; -NON_EXEC_STATIC void AutoVacLauncherMain(int argc, char *argv[]) pg_attribute_noreturn; +NON_EXEC_STATIC void AutoVacWorkerMain(int argc, char *argv[]) pg_attribute_noreturn(); +NON_EXEC_STATIC void AutoVacLauncherMain(int argc, char *argv[]) pg_attribute_noreturn(); static Oid do_start_worker(void); static void launcher_determine_sleep(bool canlaunch, bool recursing, diff --git a/src/backend/postmaster/pgarch.c b/src/backend/postmaster/pgarch.c index 800ae9362f8..4df669e14af 100644 --- a/src/backend/postmaster/pgarch.c +++ b/src/backend/postmaster/pgarch.c @@ -86,7 +86,7 @@ static volatile sig_atomic_t ready_to_stop = false; static pid_t pgarch_forkexec(void); #endif -NON_EXEC_STATIC void PgArchiverMain(int argc, char *argv[]) pg_attribute_noreturn; +NON_EXEC_STATIC void PgArchiverMain(int argc, char *argv[]) pg_attribute_noreturn(); static void pgarch_exit(SIGNAL_ARGS); static void ArchSigHupHandler(SIGNAL_ARGS); static void ArchSigTermHandler(SIGNAL_ARGS); diff --git a/src/backend/postmaster/pgstat.c b/src/backend/postmaster/pgstat.c index abdfe8947a9..0e7c1544ec0 100644 --- a/src/backend/postmaster/pgstat.c +++ b/src/backend/postmaster/pgstat.c @@ -251,7 +251,7 @@ static instr_time total_func_time; static pid_t pgstat_forkexec(void); #endif -NON_EXEC_STATIC void PgstatCollectorMain(int argc, char *argv[]) pg_attribute_noreturn; +NON_EXEC_STATIC void PgstatCollectorMain(int argc, char *argv[]) pg_attribute_noreturn(); static void pgstat_exit(SIGNAL_ARGS); static void pgstat_beshutdown_hook(int code, Datum arg); static void pgstat_sighup_handler(SIGNAL_ARGS); diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 9b2e7f310c9..a9f20ac1b44 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -380,8 +380,8 @@ static void LogChildExit(int lev, const char *procname, int pid, int exitstatus); static void PostmasterStateMachine(void); static void BackendInitialize(Port *port); -static void BackendRun(Port *port) pg_attribute_noreturn; -static void ExitPostmaster(int status) pg_attribute_noreturn; +static void BackendRun(Port *port) pg_attribute_noreturn(); +static void ExitPostmaster(int status) pg_attribute_noreturn(); static int ServerLoop(void); static int BackendStartup(Port *port); static int ProcessStartupPacket(Port *port, bool SSLdone); diff --git a/src/backend/postmaster/syslogger.c b/src/backend/postmaster/syslogger.c index a27401f3700..34c7acf6680 100644 --- a/src/backend/postmaster/syslogger.c +++ b/src/backend/postmaster/syslogger.c @@ -130,7 +130,7 @@ static volatile sig_atomic_t rotation_requested = false; static pid_t syslogger_forkexec(void); static void syslogger_parseArgs(int argc, char *argv[]); #endif -NON_EXEC_STATIC void SysLoggerMain(int argc, char *argv[]) pg_attribute_noreturn; +NON_EXEC_STATIC void SysLoggerMain(int argc, char *argv[]) pg_attribute_noreturn(); static void process_pipe_input(char *logbuffer, int *bytes_in_logbuffer); static void flush_pipe_input(char *logbuffer, int *bytes_in_logbuffer); static void open_csvlogfile(void); diff --git a/src/backend/replication/repl_scanner.l b/src/backend/replication/repl_scanner.l index 9abe4758429..f8acb66552c 100644 --- a/src/backend/replication/repl_scanner.l +++ b/src/backend/replication/repl_scanner.l @@ -205,7 +205,7 @@ addlitchar(unsigned char ychar) appendStringInfoChar(&litbuf, ychar); } -void pg_attribute_noreturn +void yyerror(const char *message) { ereport(ERROR, diff --git a/src/backend/replication/walsender.c b/src/backend/replication/walsender.c index 295611913aa..da9ee7b3d08 100644 --- a/src/backend/replication/walsender.c +++ b/src/backend/replication/walsender.c @@ -193,7 +193,7 @@ typedef void (*WalSndSendDataCallback) (void); static void WalSndLoop(WalSndSendDataCallback send_data); static void InitWalSenderSlot(void); static void WalSndKill(int code, Datum arg); -static void WalSndShutdown(void) pg_attribute_noreturn; +static void WalSndShutdown(void) pg_attribute_noreturn(); static void XLogSendPhysical(void); static void XLogSendLogical(void); static void WalSndDone(WalSndSendDataCallback send_data); diff --git a/src/backend/utils/error/elog.c b/src/backend/utils/error/elog.c index b952c7c98ed..dfd102a1fbd 100644 --- a/src/backend/utils/error/elog.c +++ b/src/backend/utils/error/elog.c @@ -82,11 +82,7 @@ #undef _ #define _(x) err_gettext(x) -static const char * -err_gettext(const char *str) -/* This extension allows gcc to check the format string for consistency with - the supplied arguments. */ -pg_attribute_format_arg(1); +static const char *err_gettext(const char *str) pg_attribute_format_arg(1); static void set_errdata_field(MemoryContextData *cxt, char **ptr, const char *str); /* Global variables */ diff --git a/src/backend/utils/misc/guc.c b/src/backend/utils/misc/guc.c index 26275bda129..b8a0f9f20c7 100644 --- a/src/backend/utils/misc/guc.c +++ b/src/backend/utils/misc/guc.c @@ -129,10 +129,7 @@ char *GUC_check_errmsg_string; char *GUC_check_errdetail_string; char *GUC_check_errhint_string; -static void -do_serialize(char **destptr, Size *maxbytes, const char *fmt,...) -/* This lets gcc check the format string for consistency. */ -pg_attribute_printf(3, 4); +static void do_serialize(char **destptr, Size *maxbytes, const char *fmt,...) pg_attribute_printf(3, 4); static void set_config_sourcefile(const char *name, char *sourcefile, int sourceline); diff --git a/src/bin/pg_ctl/pg_ctl.c b/src/bin/pg_ctl/pg_ctl.c index 052caffe8db..8202633d056 100644 --- a/src/bin/pg_ctl/pg_ctl.c +++ b/src/bin/pg_ctl/pg_ctl.c @@ -116,11 +116,7 @@ static pid_t postmasterPID = -1; #endif -static void -write_stderr(const char *fmt,...) -/* This extension allows gcc to check the format string for consistency with - the supplied arguments. */ -pg_attribute_printf(1, 2); +static void write_stderr(const char *fmt,...) pg_attribute_printf(1, 2); static void do_advice(void); static void do_help(void); static void set_mode(char *modeopt); diff --git a/src/bin/pg_dump/parallel.c b/src/bin/pg_dump/parallel.c index f58f96b0636..ff823e5ab23 100644 --- a/src/bin/pg_dump/parallel.c +++ b/src/bin/pg_dump/parallel.c @@ -78,10 +78,8 @@ static ShutdownInformation shutdown_info; static const char *modulename = gettext_noop("parallel archiver"); static ParallelSlot *GetMyPSlot(ParallelState *pstate); -static void -parallel_msg_master(ParallelSlot *slot, const char *modulename, - const char *fmt, va_list ap) -pg_attribute_printf(3, 0); +static void parallel_msg_master(ParallelSlot *slot, const char *modulename, + const char *fmt, va_list ap) pg_attribute_printf(3, 0); static void archive_close_connection(int code, void *arg); static void ShutdownWorkersHard(ParallelState *pstate); static void WaitForTerminatingWorkers(ParallelState *pstate); diff --git a/src/bin/pg_dump/pg_backup.h b/src/bin/pg_dump/pg_backup.h index d484236c4fe..80df8fcefd1 100644 --- a/src/bin/pg_dump/pg_backup.h +++ b/src/bin/pg_dump/pg_backup.h @@ -277,10 +277,7 @@ extern void SortTocFromFile(Archive *AHX, RestoreOptions *ropt); /* Convenience functions used only when writing DATA */ extern void archputs(const char *s, Archive *AH); -extern int -archprintf(Archive *AH, const char *fmt,...) -/* This extension allows gcc to check the format string */ -pg_attribute_printf(2, 3); +extern int archprintf(Archive *AH, const char *fmt,...) pg_attribute_printf(2, 3); #define appendStringLiteralAH(buf,str,AH) \ appendStringLiteral(buf, str, (AH)->encoding, (AH)->std_strings) diff --git a/src/bin/pg_dump/pg_backup_utils.h b/src/bin/pg_dump/pg_backup_utils.h index 2e9a69a615d..0df0936c91b 100644 --- a/src/bin/pg_dump/pg_backup_utils.h +++ b/src/bin/pg_dump/pg_backup_utils.h @@ -28,17 +28,11 @@ typedef void (*on_exit_nicely_callback) (int code, void *arg); extern const char *progname; extern void set_dump_section(const char *arg, int *dumpSections); -extern void -write_msg(const char *modulename, const char *fmt,...) -pg_attribute_printf(2, 3); -extern void -vwrite_msg(const char *modulename, const char *fmt, va_list ap) -pg_attribute_printf(2, 0); +extern void write_msg(const char *modulename, const char *fmt,...) pg_attribute_printf(2, 3); +extern void vwrite_msg(const char *modulename, const char *fmt, va_list ap) pg_attribute_printf(2, 0); extern void on_exit_nicely(on_exit_nicely_callback function, void *arg); -extern void exit_nicely(int code) pg_attribute_noreturn; +extern void exit_nicely(int code) pg_attribute_noreturn(); -extern void -exit_horribly(const char *modulename, const char *fmt,...) -pg_attribute_printf(2, 3) pg_attribute_noreturn; +extern void exit_horribly(const char *modulename, const char *fmt,...) pg_attribute_printf(2, 3) pg_attribute_noreturn(); #endif /* PG_BACKUP_UTILS_H */ diff --git a/src/bin/pg_rewind/logging.h b/src/bin/pg_rewind/logging.h index e089ac7803e..0272a22039d 100644 --- a/src/bin/pg_rewind/logging.h +++ b/src/bin/pg_rewind/logging.h @@ -27,10 +27,8 @@ typedef enum PG_FATAL } eLogType; -extern void pg_log(eLogType type, const char *fmt,...) -pg_attribute_printf(2, 3); -extern void pg_fatal(const char *fmt,...) -pg_attribute_printf(1, 2) pg_attribute_noreturn; +extern void pg_log(eLogType type, const char *fmt,...) pg_attribute_printf(2, 3); +extern void pg_fatal(const char *fmt,...) pg_attribute_printf(1, 2) pg_attribute_noreturn(); extern void progress_report(bool force); diff --git a/src/bin/psql/common.h b/src/bin/psql/common.h index 54266c1cb14..cdb0187feb2 100644 --- a/src/bin/psql/common.h +++ b/src/bin/psql/common.h @@ -18,10 +18,7 @@ extern bool setQFout(const char *fname); -extern void -psql_error(const char *fmt,...) -/* This lets gcc check the format string for consistency. */ -pg_attribute_printf(1, 2); +extern void psql_error(const char *fmt,...) pg_attribute_printf(1, 2); extern void NoticeProcessor(void *arg, const char *message); diff --git a/src/bin/psql/large_obj.c b/src/bin/psql/large_obj.c index 48d2d77a5e8..621d6320597 100644 --- a/src/bin/psql/large_obj.c +++ b/src/bin/psql/large_obj.c @@ -12,9 +12,7 @@ #include "settings.h" #include "common.h" -static void -print_lo_result(const char *fmt,...) -pg_attribute_printf(1, 2); +static void print_lo_result(const char *fmt,...) pg_attribute_printf(1, 2); static void print_lo_result(const char *fmt,...) diff --git a/src/include/bootstrap/bootstrap.h b/src/include/bootstrap/bootstrap.h index 3734afb468a..af9fc75a743 100644 --- a/src/include/bootstrap/bootstrap.h +++ b/src/include/bootstrap/bootstrap.h @@ -32,7 +32,7 @@ extern Form_pg_attribute attrtypes[MAXATTR]; extern int numattr; -extern void AuxiliaryProcessMain(int argc, char *argv[]) pg_attribute_noreturn; +extern void AuxiliaryProcessMain(int argc, char *argv[]) pg_attribute_noreturn(); extern void err_out(void); @@ -61,6 +61,6 @@ extern void boot_get_type_io_data(Oid typid, extern int boot_yyparse(void); extern int boot_yylex(void); -extern void boot_yyerror(const char *str) pg_attribute_noreturn; +extern void boot_yyerror(const char *str) pg_attribute_noreturn(); #endif /* BOOTSTRAP_H */ diff --git a/src/include/c.h b/src/include/c.h index e7ee5105a27..fd301b6da64 100644 --- a/src/include/c.h +++ b/src/include/c.h @@ -621,9 +621,9 @@ typedef NameData *Name; /* only GCC supports the unused attribute */ #ifdef __GNUC__ -#define pg_attribute_unused __attribute__((unused)) +#define pg_attribute_unused() __attribute__((unused)) #else -#define pg_attribute_unused +#define pg_attribute_unused() #endif /* GCC and XLC support format attributes */ @@ -638,15 +638,16 @@ typedef NameData *Name; /* GCC, Sunpro and XLC support aligned, packed and noreturn */ #if defined(__GNUC__) || defined(__SUNPRO_C) || defined(__IBMC__) #define pg_attribute_aligned(a) __attribute__((aligned(a))) -#define pg_attribute_noreturn __attribute__((noreturn)) -#define pg_attribute_packed __attribute__((packed)) +#define pg_attribute_noreturn() __attribute__((noreturn)) +#define pg_attribute_packed() __attribute__((packed)) +#define HAVE_PG_ATTRIBUTE_NORETURN 1 #else /* - * NB: aligned and packed are not defined as empty as they affect code - * functionality; they must be implemented by the compiler if they are to be - * used. + * NB: aligned and packed are not given default definitions because they + * affect code functionality; they *must* be implemented by the compiler + * if they are to be used. */ -#define pg_attribute_noreturn +#define pg_attribute_noreturn() #endif /* ---------------------------------------------------------------- @@ -995,7 +996,7 @@ typedef NameData *Name; #ifdef USE_ASSERT_CHECKING #define PG_USED_FOR_ASSERTS_ONLY #else -#define PG_USED_FOR_ASSERTS_ONLY pg_attribute_unused +#define PG_USED_FOR_ASSERTS_ONLY pg_attribute_unused() #endif @@ -1059,10 +1060,7 @@ typedef NameData *Name; */ #if !HAVE_DECL_SNPRINTF -extern int -snprintf(char *str, size_t count, const char *fmt,...) -/* This extension allows gcc to check the format string */ -pg_attribute_printf(3, 4); +extern int snprintf(char *str, size_t count, const char *fmt,...) pg_attribute_printf(3, 4); #endif #if !HAVE_DECL_VSNPRINTF diff --git a/src/include/common/fe_memutils.h b/src/include/common/fe_memutils.h index 33123cb5044..db7cb3e3318 100644 --- a/src/include/common/fe_memutils.h +++ b/src/include/common/fe_memutils.h @@ -24,11 +24,7 @@ extern void *repalloc(void *pointer, Size size); extern void pfree(void *pointer); /* sprintf into a palloc'd buffer --- these are in psprintf.c */ -extern char * -psprintf(const char *fmt,...) -pg_attribute_printf(1, 2); -extern size_t -pvsnprintf(char *buf, size_t len, const char *fmt, va_list args) -pg_attribute_printf(3, 0); +extern char *psprintf(const char *fmt,...) pg_attribute_printf(1, 2); +extern size_t pvsnprintf(char *buf, size_t len, const char *fmt, va_list args) pg_attribute_printf(3, 0); #endif /* FE_MEMUTILS_H */ diff --git a/src/include/lib/stringinfo.h b/src/include/lib/stringinfo.h index fdb828508ea..00c25b6edd5 100644 --- a/src/include/lib/stringinfo.h +++ b/src/include/lib/stringinfo.h @@ -92,10 +92,7 @@ extern void resetStringInfo(StringInfo str); * to str if necessary. This is sort of like a combination of sprintf and * strcat. */ -extern void -appendStringInfo(StringInfo str, const char *fmt,...) -/* This extension allows gcc to check the format string */ -pg_attribute_printf(2, 3); +extern void appendStringInfo(StringInfo str, const char *fmt,...) pg_attribute_printf(2, 3); /*------------------------ * appendStringInfoVA @@ -106,9 +103,7 @@ pg_attribute_printf(2, 3); * pass the return value to enlargeStringInfo() before trying again; see * appendStringInfo for standard usage pattern. */ -extern int -appendStringInfoVA(StringInfo str, const char *fmt, va_list args) -pg_attribute_printf(2, 0); +extern int appendStringInfoVA(StringInfo str, const char *fmt, va_list args) pg_attribute_printf(2, 0); /*------------------------ * appendStringInfoString diff --git a/src/include/mb/pg_wchar.h b/src/include/mb/pg_wchar.h index 0a2234d35ac..254cf678d61 100644 --- a/src/include/mb/pg_wchar.h +++ b/src/include/mb/pg_wchar.h @@ -514,9 +514,9 @@ extern void check_encoding_conversion_args(int src_encoding, int expected_src_encoding, int expected_dest_encoding); -extern void report_invalid_encoding(int encoding, const char *mbstr, int len) pg_attribute_noreturn; +extern void report_invalid_encoding(int encoding, const char *mbstr, int len) pg_attribute_noreturn(); extern void report_untranslatable_char(int src_encoding, int dest_encoding, - const char *mbstr, int len) pg_attribute_noreturn; + const char *mbstr, int len) pg_attribute_noreturn(); extern void pg_ascii2mic(const unsigned char *l, unsigned char *p, int len); extern void pg_mic2ascii(const unsigned char *mic, unsigned char *p, int len); diff --git a/src/include/parser/parse_relation.h b/src/include/parser/parse_relation.h index 9dc0d5846b0..ce563dea256 100644 --- a/src/include/parser/parse_relation.h +++ b/src/include/parser/parse_relation.h @@ -104,9 +104,9 @@ extern bool isLockedRefname(ParseState *pstate, const char *refname); extern void addRTEtoQuery(ParseState *pstate, RangeTblEntry *rte, bool addToJoinList, bool addToRelNameSpace, bool addToVarNameSpace); -extern void errorMissingRTE(ParseState *pstate, RangeVar *relation) pg_attribute_noreturn; +extern void errorMissingRTE(ParseState *pstate, RangeVar *relation) pg_attribute_noreturn(); extern void errorMissingColumn(ParseState *pstate, - char *relname, char *colname, int location) pg_attribute_noreturn; + char *relname, char *colname, int location) pg_attribute_noreturn(); extern void expandRTE(RangeTblEntry *rte, int rtindex, int sublevels_up, int location, bool include_dropped, List **colnames, List **colvars); diff --git a/src/include/parser/scanner.h b/src/include/parser/scanner.h index f941977865a..9e38c0d1971 100644 --- a/src/include/parser/scanner.h +++ b/src/include/parser/scanner.h @@ -125,6 +125,6 @@ extern void scanner_finish(core_yyscan_t yyscanner); extern int core_yylex(core_YYSTYPE *lvalp, YYLTYPE *llocp, core_yyscan_t yyscanner); extern int scanner_errposition(int location, core_yyscan_t yyscanner); -extern void scanner_yyerror(const char *message, core_yyscan_t yyscanner) pg_attribute_noreturn; +extern void scanner_yyerror(const char *message, core_yyscan_t yyscanner) pg_attribute_noreturn(); #endif /* SCANNER_H */ diff --git a/src/include/pgstat.h b/src/include/pgstat.h index 64cc8e2e7c8..f2b2257a115 100644 --- a/src/include/pgstat.h +++ b/src/include/pgstat.h @@ -875,7 +875,7 @@ extern void pgstat_reset_all(void); extern void allow_immediate_pgstat_restart(void); #ifdef EXEC_BACKEND -extern void PgstatCollectorMain(int argc, char *argv[]) pg_attribute_noreturn; +extern void PgstatCollectorMain(int argc, char *argv[]) pg_attribute_noreturn(); #endif diff --git a/src/include/port.h b/src/include/port.h index 29854dd752e..3787cbfb761 100644 --- a/src/include/port.h +++ b/src/include/port.h @@ -153,23 +153,11 @@ extern unsigned char pg_ascii_tolower(unsigned char ch); #endif extern int pg_vsnprintf(char *str, size_t count, const char *fmt, va_list args); -extern int -pg_snprintf(char *str, size_t count, const char *fmt,...) -/* This extension allows gcc to check the format string */ -pg_attribute_printf(3, 4); -extern int -pg_sprintf(char *str, const char *fmt,...) -/* This extension allows gcc to check the format string */ -pg_attribute_printf(2, 3); +extern int pg_snprintf(char *str, size_t count, const char *fmt,...) pg_attribute_printf(3, 4); +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_fprintf(FILE *stream, const char *fmt,...) -/* This extension allows gcc to check the format string */ -pg_attribute_printf(2, 3); -extern int -pg_printf(const char *fmt,...) -/* This extension allows gcc to check the format string */ -pg_attribute_printf(1, 2); +extern int pg_fprintf(FILE *stream, const char *fmt,...) pg_attribute_printf(2, 3); +extern int pg_printf(const char *fmt,...) pg_attribute_printf(1, 2); /* * The GCC-specific code below prevents the pg_attribute_printf above from diff --git a/src/include/postgres.h b/src/include/postgres.h index ff30e05bfc8..be37313fa5a 100644 --- a/src/include/postgres.h +++ b/src/include/postgres.h @@ -687,6 +687,6 @@ extern Datum Float8GetDatum(float8 X); */ extern void ExceptionalCondition(const char *conditionName, const char *errorType, - const char *fileName, int lineNumber) pg_attribute_noreturn; + const char *fileName, int lineNumber) pg_attribute_noreturn(); #endif /* POSTGRES_H */ diff --git a/src/include/postmaster/autovacuum.h b/src/include/postmaster/autovacuum.h index 0bd50443aeb..6eaaf4c1c4e 100644 --- a/src/include/postmaster/autovacuum.h +++ b/src/include/postmaster/autovacuum.h @@ -54,8 +54,8 @@ extern void AutoVacWorkerFailed(void); extern void AutoVacuumUpdateDelay(void); #ifdef EXEC_BACKEND -extern void AutoVacLauncherMain(int argc, char *argv[]) pg_attribute_noreturn; -extern void AutoVacWorkerMain(int argc, char *argv[]) pg_attribute_noreturn; +extern void AutoVacLauncherMain(int argc, char *argv[]) pg_attribute_noreturn(); +extern void AutoVacWorkerMain(int argc, char *argv[]) pg_attribute_noreturn(); extern void AutovacuumWorkerIAm(void); extern void AutovacuumLauncherIAm(void); #endif diff --git a/src/include/postmaster/bgworker_internals.h b/src/include/postmaster/bgworker_internals.h index fe7c328afd1..b0ab4c22ba7 100644 --- a/src/include/postmaster/bgworker_internals.h +++ b/src/include/postmaster/bgworker_internals.h @@ -46,7 +46,7 @@ extern void BackgroundWorkerStopNotifications(pid_t pid); extern void ResetBackgroundWorkerCrashTimes(void); /* Function to start a background worker, called from postmaster.c */ -extern void StartBackgroundWorker(void) pg_attribute_noreturn; +extern void StartBackgroundWorker(void) pg_attribute_noreturn(); #ifdef EXEC_BACKEND extern BackgroundWorker *BackgroundWorkerEntry(int slotno); diff --git a/src/include/postmaster/bgwriter.h b/src/include/postmaster/bgwriter.h index f584d857872..a49c208dd2a 100644 --- a/src/include/postmaster/bgwriter.h +++ b/src/include/postmaster/bgwriter.h @@ -25,8 +25,8 @@ extern int CheckPointTimeout; extern int CheckPointWarning; extern double CheckPointCompletionTarget; -extern void BackgroundWriterMain(void) pg_attribute_noreturn; -extern void CheckpointerMain(void) pg_attribute_noreturn; +extern void BackgroundWriterMain(void) pg_attribute_noreturn(); +extern void CheckpointerMain(void) pg_attribute_noreturn(); extern void RequestCheckpoint(int flags); extern void CheckpointWriteDelay(int flags, double progress); diff --git a/src/include/postmaster/pgarch.h b/src/include/postmaster/pgarch.h index 60e4f50368d..9f692eb47fb 100644 --- a/src/include/postmaster/pgarch.h +++ b/src/include/postmaster/pgarch.h @@ -33,7 +33,7 @@ extern int pgarch_start(void); #ifdef EXEC_BACKEND -extern void PgArchiverMain(int argc, char *argv[]) pg_attribute_noreturn; +extern void PgArchiverMain(int argc, char *argv[]) pg_attribute_noreturn(); #endif #endif /* _PGARCH_H */ diff --git a/src/include/postmaster/postmaster.h b/src/include/postmaster/postmaster.h index d41761fc7a1..d16030482fa 100644 --- a/src/include/postmaster/postmaster.h +++ b/src/include/postmaster/postmaster.h @@ -46,7 +46,7 @@ extern int postmaster_alive_fds[2]; extern const char *progname; -extern void PostmasterMain(int argc, char *argv[]) pg_attribute_noreturn; +extern void PostmasterMain(int argc, char *argv[]) pg_attribute_noreturn(); extern void ClosePostmasterPorts(bool am_syslogger); extern int MaxLivePostmasterChildren(void); @@ -56,7 +56,7 @@ extern bool PostmasterMarkPIDForWorkerNotify(int); #ifdef EXEC_BACKEND extern pid_t postmaster_forkexec(int argc, char *argv[]); -extern void SubPostmasterMain(int argc, char *argv[]) pg_attribute_noreturn; +extern void SubPostmasterMain(int argc, char *argv[]) pg_attribute_noreturn(); extern Size ShmemBackendArraySize(void); extern void ShmemBackendArrayAllocation(void); diff --git a/src/include/postmaster/startup.h b/src/include/postmaster/startup.h index 9a2092e5f28..e1fd4b100e0 100644 --- a/src/include/postmaster/startup.h +++ b/src/include/postmaster/startup.h @@ -13,7 +13,7 @@ #define _STARTUP_H extern void HandleStartupProcInterrupts(void); -extern void StartupProcessMain(void) pg_attribute_noreturn; +extern void StartupProcessMain(void) pg_attribute_noreturn(); extern void PreRestoreCommand(void); extern void PostRestoreCommand(void); extern bool IsPromoteTriggered(void); diff --git a/src/include/postmaster/syslogger.h b/src/include/postmaster/syslogger.h index d6a05d5a209..dc9f02cd424 100644 --- a/src/include/postmaster/syslogger.h +++ b/src/include/postmaster/syslogger.h @@ -84,7 +84,7 @@ extern int SysLogger_Start(void); extern void write_syslogger_file(const char *buffer, int count, int dest); #ifdef EXEC_BACKEND -extern void SysLoggerMain(int argc, char *argv[]) pg_attribute_noreturn; +extern void SysLoggerMain(int argc, char *argv[]) pg_attribute_noreturn(); #endif #endif /* _SYSLOGGER_H */ diff --git a/src/include/postmaster/walwriter.h b/src/include/postmaster/walwriter.h index 55de6c73e4a..1ab7d3d66e2 100644 --- a/src/include/postmaster/walwriter.h +++ b/src/include/postmaster/walwriter.h @@ -15,6 +15,6 @@ /* GUC options */ extern int WalWriterDelay; -extern void WalWriterMain(void) pg_attribute_noreturn; +extern void WalWriterMain(void) pg_attribute_noreturn(); #endif /* _WALWRITER_H */ diff --git a/src/include/replication/walreceiver.h b/src/include/replication/walreceiver.h index 4afdf91a6dc..61255a9f8e9 100644 --- a/src/include/replication/walreceiver.h +++ b/src/include/replication/walreceiver.h @@ -147,7 +147,7 @@ typedef void (*walrcv_disconnect_type) (void); extern PGDLLIMPORT walrcv_disconnect_type walrcv_disconnect; /* prototypes for functions in walreceiver.c */ -extern void WalReceiverMain(void) pg_attribute_noreturn; +extern void WalReceiverMain(void) pg_attribute_noreturn(); /* prototypes for functions in walreceiverfuncs.c */ extern Size WalRcvShmemSize(void); diff --git a/src/include/replication/walsender_private.h b/src/include/replication/walsender_private.h index 40351da47fd..6dae4802852 100644 --- a/src/include/replication/walsender_private.h +++ b/src/include/replication/walsender_private.h @@ -102,7 +102,7 @@ extern void WalSndSetState(WalSndState state); */ extern int replication_yyparse(void); extern int replication_yylex(void); -extern void replication_yyerror(const char *str); +extern void replication_yyerror(const char *str) pg_attribute_noreturn(); extern void replication_scanner_init(const char *query_string); extern void replication_scanner_finish(void); diff --git a/src/include/storage/ipc.h b/src/include/storage/ipc.h index 7da434e7987..c6283c2af34 100644 --- a/src/include/storage/ipc.h +++ b/src/include/storage/ipc.h @@ -64,7 +64,7 @@ typedef void (*shmem_startup_hook_type) (void); /* ipc.c */ extern PGDLLIMPORT bool proc_exit_inprogress; -extern void proc_exit(int code) pg_attribute_noreturn; +extern void proc_exit(int code) pg_attribute_noreturn(); extern void shmem_exit(int code); extern void on_proc_exit(pg_on_exit_callback function, Datum arg); extern void on_shmem_exit(pg_on_exit_callback function, Datum arg); diff --git a/src/include/storage/itemptr.h b/src/include/storage/itemptr.h index 1f0ea7db552..eb06c794d2b 100644 --- a/src/include/storage/itemptr.h +++ b/src/include/storage/itemptr.h @@ -41,7 +41,7 @@ typedef struct ItemPointerData } #ifdef __arm__ -pg_attribute_packed /* Appropriate whack upside the head for ARM */ +pg_attribute_packed() /* Appropriate whack upside the head for ARM */ #endif ItemPointerData; diff --git a/src/include/storage/lock.h b/src/include/storage/lock.h index 1477a6fe3d1..dae517f3fe0 100644 --- a/src/include/storage/lock.h +++ b/src/include/storage/lock.h @@ -547,7 +547,7 @@ extern void lock_twophase_standby_recover(TransactionId xid, uint16 info, extern DeadLockState DeadLockCheck(PGPROC *proc); extern PGPROC *GetBlockingAutoVacuumPgproc(void); -extern void DeadLockReport(void) pg_attribute_noreturn; +extern void DeadLockReport(void) pg_attribute_noreturn(); extern void RememberSimpleDeadLock(PGPROC *proc1, LOCKMODE lockmode, LOCK *lock, diff --git a/src/include/tcop/tcopprot.h b/src/include/tcop/tcopprot.h index b3c705f97b6..96c5b8b3d44 100644 --- a/src/include/tcop/tcopprot.h +++ b/src/include/tcop/tcopprot.h @@ -62,9 +62,9 @@ extern bool check_max_stack_depth(int *newval, void **extra, GucSource source); extern void assign_max_stack_depth(int newval, void *extra); extern void die(SIGNAL_ARGS); -extern void quickdie(SIGNAL_ARGS) pg_attribute_noreturn; +extern void quickdie(SIGNAL_ARGS) pg_attribute_noreturn(); extern void StatementCancelHandler(SIGNAL_ARGS); -extern void FloatExceptionHandler(SIGNAL_ARGS) pg_attribute_noreturn; +extern void FloatExceptionHandler(SIGNAL_ARGS) pg_attribute_noreturn(); extern void RecoveryConflictInterrupt(ProcSignalReason reason); /* called from SIGUSR1 * handler */ extern void ProcessClientReadInterrupt(bool blocked); @@ -74,7 +74,7 @@ extern void process_postgres_switches(int argc, char *argv[], GucContext ctx, const char **dbname); extern void PostgresMain(int argc, char *argv[], const char *dbname, - const char *username) pg_attribute_noreturn; + const char *username) pg_attribute_noreturn(); extern long get_stack_depth_rlimit(void); extern void ResetUsage(void); extern void ShowUsage(const char *title); diff --git a/src/include/utils/datetime.h b/src/include/utils/datetime.h index 3a2335523d0..5b86ca10ef6 100644 --- a/src/include/utils/datetime.h +++ b/src/include/utils/datetime.h @@ -315,7 +315,7 @@ extern int DecodeISO8601Interval(char *str, int *dtype, struct pg_tm * tm, fsec_t *fsec); extern void DateTimeParseError(int dterr, const char *str, - const char *datatype) pg_attribute_noreturn; + const char *datatype) pg_attribute_noreturn(); extern int DetermineTimeZoneOffset(struct pg_tm * tm, pg_tz *tzp); extern int DetermineTimeZoneAbbrevOffset(struct pg_tm * tm, const char *abbr, pg_tz *tzp); diff --git a/src/include/utils/elog.h b/src/include/utils/elog.h index a82063a57b1..8e906611953 100644 --- a/src/include/utils/elog.h +++ b/src/include/utils/elog.h @@ -143,65 +143,25 @@ extern int errcode(int sqlerrcode); extern int errcode_for_file_access(void); extern int errcode_for_socket_access(void); -extern int -errmsg(const char *fmt,...) -/* This extension allows gcc to check the format string for consistency with - the supplied arguments. */ -pg_attribute_printf(1, 2); - -extern int -errmsg_internal(const char *fmt,...) -/* This extension allows gcc to check the format string for consistency with - the supplied arguments. */ -pg_attribute_printf(1, 2); - -extern int -errmsg_plural(const char *fmt_singular, const char *fmt_plural, - unsigned long n,...) -/* This extension allows gcc to check the format string for consistency with - the supplied arguments. */ -pg_attribute_printf(1, 4) -pg_attribute_printf(2, 4); - -extern int -errdetail(const char *fmt,...) -/* This extension allows gcc to check the format string for consistency with - the supplied arguments. */ -pg_attribute_printf(1, 2); - -extern int -errdetail_internal(const char *fmt,...) -/* This extension allows gcc to check the format string for consistency with - the supplied arguments. */ -pg_attribute_printf(1, 2); - -extern int -errdetail_log(const char *fmt,...) -/* This extension allows gcc to check the format string for consistency with - the supplied arguments. */ -pg_attribute_printf(1, 2); - -extern int -errdetail_log_plural(const char *fmt_singular, const char *fmt_plural, - unsigned long n,...) -/* This extension allows gcc to check the format string for consistency with - the supplied arguments. */ -pg_attribute_printf(1, 4) -pg_attribute_printf(2, 4); - -extern int -errdetail_plural(const char *fmt_singular, const char *fmt_plural, - unsigned long n,...) -/* This extension allows gcc to check the format string for consistency with - the supplied arguments. */ -pg_attribute_printf(1, 4) -pg_attribute_printf(2, 4); - -extern int -errhint(const char *fmt,...) -/* This extension allows gcc to check the format string for consistency with - the supplied arguments. */ -pg_attribute_printf(1, 2); +extern int errmsg(const char *fmt,...) pg_attribute_printf(1, 2); +extern int errmsg_internal(const char *fmt,...) pg_attribute_printf(1, 2); + +extern int errmsg_plural(const char *fmt_singular, const char *fmt_plural, + unsigned long n,...) pg_attribute_printf(1, 4) pg_attribute_printf(2, 4); + +extern int errdetail(const char *fmt,...) pg_attribute_printf(1, 2); +extern int errdetail_internal(const char *fmt,...) pg_attribute_printf(1, 2); + +extern int errdetail_log(const char *fmt,...) pg_attribute_printf(1, 2); + +extern int errdetail_log_plural(const char *fmt_singular, + const char *fmt_plural, + unsigned long n,...) pg_attribute_printf(1, 4) pg_attribute_printf(2, 4); + +extern int errdetail_plural(const char *fmt_singular, const char *fmt_plural, + unsigned long n,...) pg_attribute_printf(1, 4) pg_attribute_printf(2, 4); + +extern int errhint(const char *fmt,...) pg_attribute_printf(1, 2); /* * errcontext() is typically called in error context callback functions, not @@ -214,11 +174,8 @@ pg_attribute_printf(1, 2); #define errcontext set_errcontext_domain(TEXTDOMAIN), errcontext_msg extern int set_errcontext_domain(const char *domain); -extern int -errcontext_msg(const char *fmt,...) -/* This extension allows gcc to check the format string for consistency with - the supplied arguments. */ -pg_attribute_printf(1, 2); + +extern int errcontext_msg(const char *fmt,...) pg_attribute_printf(1, 2); extern int errhidestmt(bool hide_stmt); extern int errhidecontext(bool hide_ctx); @@ -274,21 +231,13 @@ extern int getinternalerrposition(void); #endif /* HAVE__VA_ARGS */ extern void elog_start(const char *filename, int lineno, const char *funcname); -extern void -elog_finish(int elevel, const char *fmt,...) -/* This extension allows gcc to check the format string for consistency with - the supplied arguments. */ -pg_attribute_printf(2, 3); +extern void elog_finish(int elevel, const char *fmt,...) pg_attribute_printf(2, 3); /* Support for constructing error strings separately from ereport() calls */ extern void pre_format_elog_string(int errnumber, const char *domain); -extern char * -format_elog_string(const char *fmt,...) -/* This extension allows gcc to check the format string for consistency with - the supplied arguments. */ -pg_attribute_printf(1, 2); +extern char *format_elog_string(const char *fmt,...) pg_attribute_printf(1, 2); /* Support for attaching context information to error reports */ @@ -364,10 +313,10 @@ extern PGDLLIMPORT ErrorContextCallback *error_context_stack; } while (0) /* - * gcc understands pg_attribute_noreturn; for other compilers, insert - * pg_unreachable() so that the compiler gets the point. + * Some compilers understand pg_attribute_noreturn(); for other compilers, + * insert pg_unreachable() so that the compiler gets the point. */ -#ifdef __GNUC__ +#ifdef HAVE_PG_ATTRIBUTE_NORETURN #define PG_RE_THROW() \ pg_re_throw() #else @@ -423,9 +372,9 @@ extern void EmitErrorReport(void); extern ErrorData *CopyErrorData(void); extern void FreeErrorData(ErrorData *edata); extern void FlushErrorState(void); -extern void ReThrowError(ErrorData *edata) pg_attribute_noreturn; +extern void ReThrowError(ErrorData *edata) pg_attribute_noreturn(); extern void ThrowErrorData(ErrorData *edata); -extern void pg_re_throw(void) pg_attribute_noreturn; +extern void pg_re_throw(void) pg_attribute_noreturn(); extern char *GetErrorContextStack(void); @@ -468,10 +417,6 @@ extern void set_syslog_parameters(const char *ident, int facility); * not available). Used before ereport/elog can be used * safely (memory context, GUC load etc) */ -extern void -write_stderr(const char *fmt,...) -/* This extension allows gcc to check the format string for consistency with - the supplied arguments. */ -pg_attribute_printf(1, 2); +extern void write_stderr(const char *fmt,...) pg_attribute_printf(1, 2); #endif /* ELOG_H */ diff --git a/src/include/utils/help_config.h b/src/include/utils/help_config.h index af529964003..54e3ec79667 100644 --- a/src/include/utils/help_config.h +++ b/src/include/utils/help_config.h @@ -12,6 +12,6 @@ #ifndef HELP_CONFIG_H #define HELP_CONFIG_H 1 -extern void GucInfoMain(void) pg_attribute_noreturn; +extern void GucInfoMain(void) pg_attribute_noreturn(); #endif diff --git a/src/include/utils/palloc.h b/src/include/utils/palloc.h index bd8767520e3..2cf51298331 100644 --- a/src/include/utils/palloc.h +++ b/src/include/utils/palloc.h @@ -136,11 +136,7 @@ extern char *pstrdup(const char *in); extern char *pnstrdup(const char *in, Size len); /* sprintf into a palloc'd buffer --- these are in psprintf.c */ -extern char * -psprintf(const char *fmt,...) -pg_attribute_printf(1, 2); -extern size_t -pvsnprintf(char *buf, size_t len, const char *fmt, va_list args) -pg_attribute_printf(3, 0); +extern char *psprintf(const char *fmt,...) pg_attribute_printf(1, 2); +extern size_t pvsnprintf(char *buf, size_t len, const char *fmt, va_list args) pg_attribute_printf(3, 0); #endif /* PALLOC_H */ diff --git a/src/interfaces/ecpg/include/ecpglib.h b/src/interfaces/ecpg/include/ecpglib.h index 5efe59351f1..c32df6c5d58 100644 --- a/src/interfaces/ecpg/include/ecpglib.h +++ b/src/interfaces/ecpg/include/ecpglib.h @@ -13,9 +13,7 @@ #include <string.h> #ifdef ENABLE_NLS -extern char * -ecpg_gettext(const char *msgid) -pg_attribute_format_arg(1); +extern char *ecpg_gettext(const char *msgid) pg_attribute_format_arg(1); #else #define ecpg_gettext(x) (x) #endif diff --git a/src/interfaces/ecpg/preproc/ecpg.header b/src/interfaces/ecpg/preproc/ecpg.header index e23407ec8d3..f41999a86f1 100644 --- a/src/interfaces/ecpg/preproc/ecpg.header +++ b/src/interfaces/ecpg/preproc/ecpg.header @@ -61,10 +61,12 @@ struct variable no_indicator = {"no_indicator", &ecpg_no_indicator, 0, NULL}; static struct ECPGtype ecpg_query = {ECPGt_char_variable, NULL, NULL, NULL, {NULL}, 0}; +static void vmmerror(int error_code, enum errortype type, const char *error, va_list ap) pg_attribute_printf(3, 0); + /* * Handle parsing errors and warnings */ -static void pg_attribute_printf(3, 0) +static void vmmerror(int error_code, enum errortype type, const char *error, va_list ap) { /* localize the error message string */ diff --git a/src/interfaces/ecpg/preproc/extern.h b/src/interfaces/ecpg/preproc/extern.h index 1ce25ebe1bb..ea8fd8ed98c 100644 --- a/src/interfaces/ecpg/preproc/extern.h +++ b/src/interfaces/ecpg/preproc/extern.h @@ -78,7 +78,7 @@ extern void base_yyerror(const char *); extern void *mm_alloc(size_t), *mm_realloc(void *, size_t); extern char *mm_strdup(const char *); extern void mmerror(int errorcode, enum errortype type, const char *error,...) pg_attribute_printf(3, 4); -extern void mmfatal(int errorcode, const char *error,...) pg_attribute_printf(2, 3) pg_attribute_noreturn; +extern void mmfatal(int errorcode, const char *error,...) pg_attribute_printf(2, 3) pg_attribute_noreturn(); extern void output_get_descr_header(char *); extern void output_get_descr(char *, char *); extern void output_set_descr_header(char *); diff --git a/src/interfaces/libpq/libpq-int.h b/src/interfaces/libpq/libpq-int.h index b9b630a222f..21759578f3a 100644 --- a/src/interfaces/libpq/libpq-int.h +++ b/src/interfaces/libpq/libpq-int.h @@ -545,10 +545,7 @@ extern char *pqResultStrdup(PGresult *res, const char *str); extern void pqClearAsyncResult(PGconn *conn); extern void pqSaveErrorResult(PGconn *conn); extern PGresult *pqPrepareAsyncResult(PGconn *conn); -extern void -pqInternalNotice(const PGNoticeHooks *hooks, const char *fmt,...) -/* This lets gcc check the format string for consistency. */ -pg_attribute_printf(2, 3); +extern void pqInternalNotice(const PGNoticeHooks *hooks, const char *fmt,...) pg_attribute_printf(2, 3); extern void pqSaveMessageField(PGresult *res, char code, const char *value); extern void pqSaveParameterStatus(PGconn *conn, const char *name, @@ -651,12 +648,8 @@ extern ssize_t pgtls_write(PGconn *conn, const void *ptr, size_t len); #define pqIsnonblocking(conn) ((conn)->nonblocking) #ifdef ENABLE_NLS -extern char * -libpq_gettext(const char *msgid) -pg_attribute_format_arg(1); -extern char * -libpq_ngettext(const char *msgid, const char *msgid_plural, unsigned long n) -pg_attribute_format_arg(1) pg_attribute_format_arg(2); +extern char *libpq_gettext(const char *msgid) pg_attribute_format_arg(1); +extern char *libpq_ngettext(const char *msgid, const char *msgid_plural, unsigned long n) pg_attribute_format_arg(1) pg_attribute_format_arg(2); #else #define libpq_gettext(x) (x) #define libpq_ngettext(s, p, n) ((n) == 1 ? (s) : (p)) diff --git a/src/interfaces/libpq/pqexpbuffer.c b/src/interfaces/libpq/pqexpbuffer.c index 43df56a1e09..15a92e626dc 100644 --- a/src/interfaces/libpq/pqexpbuffer.c +++ b/src/interfaces/libpq/pqexpbuffer.c @@ -37,9 +37,7 @@ /* All "broken" PQExpBuffers point to this string. */ static const char oom_buffer[1] = ""; -static bool -appendPQExpBufferVA(PQExpBuffer str, const char *fmt, va_list args) -pg_attribute_printf(2, 0); +static bool appendPQExpBufferVA(PQExpBuffer str, const char *fmt, va_list args) pg_attribute_printf(2, 0); /* diff --git a/src/interfaces/libpq/pqexpbuffer.h b/src/interfaces/libpq/pqexpbuffer.h index 345d20376b8..0342c9649c5 100644 --- a/src/interfaces/libpq/pqexpbuffer.h +++ b/src/interfaces/libpq/pqexpbuffer.h @@ -146,10 +146,7 @@ extern int enlargePQExpBuffer(PQExpBuffer str, size_t needed); * This is a convenience routine that does the same thing as * resetPQExpBuffer() followed by appendPQExpBuffer(). */ -extern void -printfPQExpBuffer(PQExpBuffer str, const char *fmt,...) -/* This extension allows gcc to check the format string */ -pg_attribute_printf(2, 3); +extern void printfPQExpBuffer(PQExpBuffer str, const char *fmt,...) pg_attribute_printf(2, 3); /*------------------------ * appendPQExpBuffer @@ -158,10 +155,7 @@ pg_attribute_printf(2, 3); * to str if necessary. This is sort of like a combination of sprintf and * strcat. */ -extern void -appendPQExpBuffer(PQExpBuffer str, const char *fmt,...) -/* This extension allows gcc to check the format string */ -pg_attribute_printf(2, 3); +extern void appendPQExpBuffer(PQExpBuffer str, const char *fmt,...) pg_attribute_printf(2, 3); /*------------------------ * appendPQExpBufferStr diff --git a/src/interfaces/libpq/win32.c b/src/interfaces/libpq/win32.c index 04c5ed4b724..ee91f810219 100644 --- a/src/interfaces/libpq/win32.c +++ b/src/interfaces/libpq/win32.c @@ -34,9 +34,7 @@ /* Declared here to avoid pulling in all includes, which causes name collissions */ #ifdef ENABLE_NLS -extern char * -libpq_gettext(const char *msgid) -pg_attribute_format_arg(1); +extern char *libpq_gettext(const char *msgid) pg_attribute_format_arg(1); #else #define libpq_gettext(x) (x) #endif diff --git a/src/pl/plperl/plperl.h b/src/pl/plperl/plperl.h index aadb8883930..813d4401bbb 100644 --- a/src/pl/plperl/plperl.h +++ b/src/pl/plperl/plperl.h @@ -30,7 +30,7 @@ * Supply a value of PERL_UNUSED_DECL that will satisfy gcc - the one * perl itself supplies doesn't seem to. */ -#define PERL_UNUSED_DECL pg_attribute_unused +#define PERL_UNUSED_DECL pg_attribute_unused() /* * Sometimes perl carefully scribbles on our *printf macros. diff --git a/src/pl/plpgsql/src/pl_scanner.c b/src/pl/plpgsql/src/pl_scanner.c index dce56ce55b9..683fdab2b4d 100644 --- a/src/pl/plpgsql/src/pl_scanner.c +++ b/src/pl/plpgsql/src/pl_scanner.c @@ -608,7 +608,7 @@ plpgsql_scanner_errposition(int location) * Beware of using yyerror for other purposes, as the cursor position might * be misleading! */ -void pg_attribute_noreturn +void plpgsql_yyerror(const char *message) { char *yytext = core_yy.scanbuf + plpgsql_yylloc; diff --git a/src/pl/plpgsql/src/plpgsql.h b/src/pl/plpgsql/src/plpgsql.h index f630ff822fb..bec773a787b 100644 --- a/src/pl/plpgsql/src/plpgsql.h +++ b/src/pl/plpgsql/src/plpgsql.h @@ -1023,7 +1023,7 @@ extern int plpgsql_peek(void); extern void plpgsql_peek2(int *tok1_p, int *tok2_p, int *tok1_loc, int *tok2_loc); extern int plpgsql_scanner_errposition(int location); -extern void plpgsql_yyerror(const char *message); +extern void plpgsql_yyerror(const char *message) pg_attribute_noreturn(); extern int plpgsql_location_to_lineno(int location); extern int plpgsql_latest_lineno(void); extern void plpgsql_scanner_init(const char *str); diff --git a/src/pl/plpython/plpy_elog.h b/src/pl/plpython/plpy_elog.h index e4e4dfb695d..94725c2a2e4 100644 --- a/src/pl/plpython/plpy_elog.h +++ b/src/pl/plpython/plpy_elog.h @@ -10,18 +10,11 @@ extern PyObject *PLy_exc_error; extern PyObject *PLy_exc_fatal; extern PyObject *PLy_exc_spi_error; -extern void -PLy_elog(int elevel, const char *fmt,...) -pg_attribute_printf(2, 3); +extern void PLy_elog(int elevel, const char *fmt,...) pg_attribute_printf(2, 3); -extern void -PLy_exception_set(PyObject *exc, const char *fmt,...) -pg_attribute_printf(2, 3); +extern void PLy_exception_set(PyObject *exc, const char *fmt,...) pg_attribute_printf(2, 3); -extern void -PLy_exception_set_plural(PyObject *exc, const char *fmt_singular, const char *fmt_plural, - unsigned long n,...) -pg_attribute_printf(2, 5) -pg_attribute_printf(3, 5); +extern void PLy_exception_set_plural(PyObject *exc, const char *fmt_singular, const char *fmt_plural, + unsigned long n,...) pg_attribute_printf(2, 5) pg_attribute_printf(3, 5); #endif /* PLPY_ELOG_H */ diff --git a/src/test/modules/test_shm_mq/test_shm_mq.h b/src/test/modules/test_shm_mq/test_shm_mq.h index 94d28805ff5..934df73fe62 100644 --- a/src/test/modules/test_shm_mq/test_shm_mq.h +++ b/src/test/modules/test_shm_mq/test_shm_mq.h @@ -40,6 +40,6 @@ extern void test_shm_mq_setup(int64 queue_size, int32 nworkers, shm_mq_handle **input); /* Main entrypoint for a worker. */ -extern void test_shm_mq_main(Datum) pg_attribute_noreturn; +extern void test_shm_mq_main(Datum) pg_attribute_noreturn(); #endif diff --git a/src/test/modules/worker_spi/worker_spi.c b/src/test/modules/worker_spi/worker_spi.c index 4149c94d302..fcb34ca1983 100644 --- a/src/test/modules/worker_spi/worker_spi.c +++ b/src/test/modules/worker_spi/worker_spi.c @@ -46,7 +46,7 @@ PG_MODULE_MAGIC; PG_FUNCTION_INFO_V1(worker_spi_launch); void _PG_init(void); -void worker_spi_main(Datum) pg_attribute_noreturn; +void worker_spi_main(Datum) pg_attribute_noreturn(); /* flags set by signal handlers */ static volatile sig_atomic_t got_sighup = false; diff --git a/src/test/regress/pg_regress.c b/src/test/regress/pg_regress.c index 9d4fb9a5a58..3de479023ad 100644 --- a/src/test/regress/pg_regress.c +++ b/src/test/regress/pg_regress.c @@ -131,21 +131,9 @@ static int fail_ignore_count = 0; static bool directory_exists(const char *dir); static void make_directory(const char *dir); -static void -header(const char *fmt,...) -/* This extension allows gcc to check the format string for consistency with - the supplied arguments. */ -pg_attribute_printf(1, 2); -static void -status(const char *fmt,...) -/* This extension allows gcc to check the format string for consistency with - the supplied arguments. */ -pg_attribute_printf(1, 2); -static void -psql_command(const char *database, const char *query,...) -/* This extension allows gcc to check the format string for consistency with - the supplied arguments. */ -pg_attribute_printf(2, 3); +static void header(const char *fmt,...) pg_attribute_printf(1, 2); +static void status(const char *fmt,...) pg_attribute_printf(1, 2); +static void psql_command(const char *database, const char *query,...) pg_attribute_printf(2, 3); #ifdef WIN32 typedef BOOL (WINAPI * __CreateRestrictedToken) (HANDLE, DWORD, DWORD, PSID_AND_ATTRIBUTES, DWORD, PLUID_AND_ATTRIBUTES, DWORD, PSID_AND_ATTRIBUTES, PHANDLE); |