From d66997dfe8fe5a2fc6e25a64e78309ca2094f396 Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Thu, 27 Mar 2025 11:06:30 -0400 Subject: [PATCH] Avoid mixing designated and non-designated field initializers. As revised by commit 9324c8c58, PG_MODULE_MAGIC constructed a struct initializer containing both designated fields and a non-designated "0". That's okay in C, but not in C++, with the result that extensions written in C++ failed to compile. Change it to use only designated field initializers. Author: Yurii Rashkovskii Discussion: https://postgr.es/m/CAG=VW14mctsR543gpzLCuJ9JgJqwa=ptmBfGvxEjs+k8Jf7-Bg@mail.gmail.com --- src/include/fmgr.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/include/fmgr.h b/src/include/fmgr.h index 853870d3abf..0fe7b4ebc77 100644 --- a/src/include/fmgr.h +++ b/src/include/fmgr.h @@ -522,7 +522,7 @@ extern PGDLLEXPORT const Pg_magic_struct *PG_MAGIC_FUNCTION_NAME(void); \ const Pg_magic_struct * \ PG_MAGIC_FUNCTION_NAME(void) \ { \ - static const Pg_magic_struct Pg_magic_data = PG_MODULE_MAGIC_DATA(0); \ + static const Pg_magic_struct Pg_magic_data = PG_MODULE_MAGIC_DATA(.name = NULL); \ return &Pg_magic_data; \ } \ extern int no_such_variable