Use typeof everywhere instead of compiler specific spellings

We define typeof ourselves as __typeof__ if it does not exist.  So
let's actually use that for consistency.  The meson/autoconf checks
for __builtin_types_compatible_p still use __typeof__ though, because
there we have not redefined it.

Author: Jelte Fennema-Nio <postgres@jeltef.nl>
Discussion: https://www.postgresql.org/message-id/flat/CAGECzQR21OnnKiZO_1rLWO0-16kg1JBxnVq-wymYW0-_1cUNtg@mail.gmail.com
This commit is contained in:
Peter Eisentraut 2026-03-06 10:13:49 +01:00
parent aa7c868523
commit e2308350c9

View file

@ -1022,10 +1022,10 @@ pg_noreturn extern void ExceptionalCondition(const char *conditionName,
*/
#ifdef HAVE__BUILTIN_TYPES_COMPATIBLE_P
#define StaticAssertVariableIsOfType(varname, typename) \
StaticAssertDecl(__builtin_types_compatible_p(__typeof__(varname), typename), \
StaticAssertDecl(__builtin_types_compatible_p(typeof(varname), typename), \
CppAsString(varname) " does not have type " CppAsString(typename))
#define StaticAssertVariableIsOfTypeMacro(varname, typename) \
(StaticAssertExpr(__builtin_types_compatible_p(__typeof__(varname), typename), \
(StaticAssertExpr(__builtin_types_compatible_p(typeof(varname), typename), \
CppAsString(varname) " does not have type " CppAsString(typename)))
#else /* !HAVE__BUILTIN_TYPES_COMPATIBLE_P */
#define StaticAssertVariableIsOfType(varname, typename) \
@ -1289,11 +1289,11 @@ typedef struct PGAlignedXLogBlock PGAlignedXLogBlock;
#define unvolatize(underlying_type, expr) const_cast<underlying_type>(expr)
#elif defined(HAVE__BUILTIN_TYPES_COMPATIBLE_P)
#define unconstify(underlying_type, expr) \
(StaticAssertExpr(__builtin_types_compatible_p(__typeof(expr), const underlying_type), \
(StaticAssertExpr(__builtin_types_compatible_p(typeof(expr), const underlying_type), \
"wrong cast"), \
(underlying_type) (expr))
#define unvolatize(underlying_type, expr) \
(StaticAssertExpr(__builtin_types_compatible_p(__typeof(expr), volatile underlying_type), \
(StaticAssertExpr(__builtin_types_compatible_p(typeof(expr), volatile underlying_type), \
"wrong cast"), \
(underlying_type) (expr))
#else