From 1dedea2f819a973901c4534ed99fdb475cbcaaed Mon Sep 17 00:00:00 2001 From: CyberNative AI LLC Date: Sun, 18 Oct 2026 22:32:26 -0700 Subject: [PATCH] Put pg_noreturn before static in agtype_parser.c PostgreSQL 19 defines pg_noreturn as the C23 attribute [[noreturn]] when the compiler defaults to C23, as GCC 15 does. A C23 attribute must come first in a declaration, so "static pg_noreturn void" no longer compiles: agtype_parser.c:77:20: error: expected identifier or '(' before 'void' Move pg_noreturn to the front of the two declarations, the placement PostgreSQL's own headers use (e.g. "pg_noreturn extern void pg_re_throw(void);" in utils/elog.h). The C11 _Noreturn form that PostgreSQL 18 and older use accepts the same placement. Fixes #2478 --- src/backend/utils/adt/agtype_parser.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/backend/utils/adt/agtype_parser.c b/src/backend/utils/adt/agtype_parser.c index 40fc8d8c5..29b554334 100644 --- a/src/backend/utils/adt/agtype_parser.c +++ b/src/backend/utils/adt/agtype_parser.c @@ -74,9 +74,9 @@ static void parse_object(agtype_lex_context *lex, agtype_sem_action *sem); static void parse_array_element(agtype_lex_context *lex, agtype_sem_action *sem); static void parse_array(agtype_lex_context *lex, agtype_sem_action *sem); -static pg_noreturn void report_parse_error(agtype_parse_context ctx, +pg_noreturn static void report_parse_error(agtype_parse_context ctx, agtype_lex_context *lex); -static pg_noreturn void report_invalid_token(agtype_lex_context *lex); +pg_noreturn static void report_invalid_token(agtype_lex_context *lex); static int report_agtype_context(agtype_lex_context *lex); static char *extract_mb_char(char *s);