postgres.git / summary / log / commit / refs

commit    795e94c70cf13f60b2cb4010f29a1bca542d2031
Author:   Peter Eisentraut <peter@eisentraut.org>
Date:     Thu Dec 11 08:19:17 2025 +0000

    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


src/include/c.h | 2 +- src/include/regex/regcustom.h | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/include/c.h b/src/include/c.h index 55effdda0fd..d2cdc76644c 100644 --- a/src/include/c.h +++ b/src/include/c.h @@ -59,6 +59,7 @@ #include "pg_config_os.h" /* config from include/port/PORTNAME.h */ /* System header files that should be available everywhere in Postgres */ +#include <assert.h> #include <inttypes.h> #include <stdalign.h> #include <stdio.h> @@ -872,7 +873,6 @@ typedef NameData *Name; #elif defined(FRONTEND) -#include <assert.h> #define Assert(p) assert(p) #define AssertMacro(p) ((void) assert(p)) diff --git a/src/include/regex/regcustom.h b/src/include/regex/regcustom.h index 1c0e92f168f..4557e7a62c0 100644 --- a/src/include/regex/regcustom.h +++ b/src/include/regex/regcustom.h @@ -53,6 +53,7 @@ #define FREE(p) pfree(VS(p)) #define REALLOC(p,n) repalloc_extended(VS(p),(n), MCXT_ALLOC_NO_OOM) #define INTERRUPT(re) CHECK_FOR_INTERRUPTS() +#undef assert #define assert(x) Assert(x) /* internal character type and related */ [parent: 4f7dacc5b82a]