1
0
mirror of https://github.com/postgres/postgres.git synced 2025-12-13 14:22:43 +03:00

Make <assert.h> consistently available in frontend and backend

Previously, c.h made <assert.h> only available in frontends (#ifdef
FRONTEND), which was probably reasonable, because the only thing it
would give you is assert(), which you generally shouldn't use in the
backend.  But with C11, <assert.h> also makes available
static_assert(), which would be useful everywhere.  So this patch
moves <assert.h> to the commonly available header files in c.h and
fixes a small complication in regcustom.h that resulted from that.

Co-authored-by: Thomas Munro <thomas.munro@gmail.com>
Discussion: https://www.postgresql.org/message-id/flat/CA%2BhUKGKvr0x_oGmQTUkx%3DODgSksT2EtgCA6LmGx_jQFG%3DsDUpg%40mail.gmail.com
This commit is contained in:
Peter Eisentraut
2025-12-11 09:19:17 +01:00
parent 4f7dacc5b8
commit 795e94c70c
2 changed files with 2 additions and 1 deletions

View File

@@ -59,6 +59,7 @@
#include "pg_config_os.h" /* config from include/port/PORTNAME.h */ #include "pg_config_os.h" /* config from include/port/PORTNAME.h */
/* System header files that should be available everywhere in Postgres */ /* System header files that should be available everywhere in Postgres */
#include <assert.h>
#include <inttypes.h> #include <inttypes.h>
#include <stdalign.h> #include <stdalign.h>
#include <stdio.h> #include <stdio.h>
@@ -872,7 +873,6 @@ typedef NameData *Name;
#elif defined(FRONTEND) #elif defined(FRONTEND)
#include <assert.h>
#define Assert(p) assert(p) #define Assert(p) assert(p)
#define AssertMacro(p) ((void) assert(p)) #define AssertMacro(p) ((void) assert(p))

View File

@@ -53,6 +53,7 @@
#define FREE(p) pfree(VS(p)) #define FREE(p) pfree(VS(p))
#define REALLOC(p,n) repalloc_extended(VS(p),(n), MCXT_ALLOC_NO_OOM) #define REALLOC(p,n) repalloc_extended(VS(p),(n), MCXT_ALLOC_NO_OOM)
#define INTERRUPT(re) CHECK_FOR_INTERRUPTS() #define INTERRUPT(re) CHECK_FOR_INTERRUPTS()
#undef assert
#define assert(x) Assert(x) #define assert(x) Assert(x)
/* internal character type and related */ /* internal character type and related */