0001-Rename-pg_builtin_integer_constant_p-to-pg_integer_c.patch

text/plain

Filename: 0001-Rename-pg_builtin_integer_constant_p-to-pg_integer_c.patch
Type: text/plain
Part: 0
Message: Re: Fixing MSVC's inability to detect elog(ERROR) does not return

Patch

Format: format-patch
Series: patch 0001
Subject: Rename pg_builtin_integer_constant_p to pg_integer_constant_p
File+
src/include/c.h 6 7
src/include/utils/elog.h 8 8
From 18f90d3d5e7f4768f16912f764e12e0663fc729c Mon Sep 17 00:00:00 2001
From: Peter Eisentraut <peter@eisentraut.org>
Date: Mon, 29 Sep 2025 21:19:05 +0200
Subject: [PATCH] Rename pg_builtin_integer_constant_p to pg_integer_constant_p

Since it's not builtin.  Also fix a related typo.
---
 src/include/c.h          | 13 ++++++-------
 src/include/utils/elog.h | 16 ++++++++--------
 2 files changed, 14 insertions(+), 15 deletions(-)

diff --git a/src/include/c.h b/src/include/c.h
index 7fe083c3afb..9ab5e617995 100644
--- a/src/include/c.h
+++ b/src/include/c.h
@@ -336,14 +336,13 @@
  * compile-time integer const.  We don't define this macro to return 0 when
  * unsupported due to the risk of users of the macro misbehaving if we return
  * 0 when the expression *is* an integer constant.  Callers may check if this
- * macro is defined by checking if HAVE_PG_BUILTIN_INTEGER_CONSTANT_P is
- * defined.
+ * macro is defined by checking if HAVE_PG_INTEGER_CONSTANT_P is defined.
  */
 #if defined(HAVE__BUILTIN_CONSTANT_P)
 
-/* When __builtin_const_p() is available, use it. */
-#define pg_builtin_integer_constant_p(x) __builtin_constant_p(x)
-#define HAVE_PG_BUILTIN_INTEGER_CONSTANT_P
+/* When __builtin_constant_p() is available, use it. */
+#define pg_integer_constant_p(x) __builtin_constant_p(x)
+#define HAVE_PG_INTEGER_CONSTANT_P
 #elif defined(_MSC_VER) && defined(__STDC_VERSION__)
 
 /*
@@ -353,9 +352,9 @@
  * and only works with integer constants.  Compilation will fail if given a
  * constant or variable of any type other than an integer.
  */
-#define pg_builtin_integer_constant_p(x) \
+#define pg_integer_constant_p(x) \
 	_Generic((1 ? ((void *) ((x) * (uintptr_t) 0)) : &(int) {1}), int *: 1, void *: 0)
-#define HAVE_PG_BUILTIN_INTEGER_CONSTANT_P
+#define HAVE_PG_INTEGER_CONSTANT_P
 #endif
 
 /*
diff --git a/src/include/utils/elog.h b/src/include/utils/elog.h
index b4945eb7ee0..348dafbf906 100644
--- a/src/include/utils/elog.h
+++ b/src/include/utils/elog.h
@@ -119,11 +119,11 @@ struct Node;
  * ereport_domain() directly, or preferably they can override the TEXTDOMAIN
  * macro.
  *
- * When pg_builtin_integer_constant_p is available and elevel >= ERROR we make
+ * When pg_integer_constant_p is available and elevel >= ERROR we make
  * a call to errstart_cold() instead of errstart().  This version of the
  * function is marked with pg_attribute_cold which will coax supporting
  * compilers into generating code which is more optimized towards non-ERROR
- * cases.  Because we use pg_builtin_integer_constant_p() in the condition,
+ * cases.  Because we use pg_integer_constant_p() in the condition,
  * when elevel is not a compile-time constant, or if it is, but it's < ERROR,
  * the compiler has no need to generate any code for this branch.  It can
  * simply call errstart() unconditionally.
@@ -131,25 +131,25 @@ struct Node;
  * If elevel >= ERROR, the call will not return; we try to inform the compiler
  * of that via pg_unreachable().  However, no useful optimization effect is
  * obtained unless the compiler sees elevel as a compile-time constant, else
- * we're just adding code bloat.  So, if pg_builtin_integer_constant_p is
+ * we're just adding code bloat.  So, if pg_integer_constant_p is
  * available, use that to cause the second if() to vanish completely for
  * non-constant cases.  We avoid using a local variable because it's not
  * necessary and prevents gcc from making the unreachability deduction at
  * optlevel -O0.
  *----------
  */
-#ifdef HAVE_PG_BUILTIN_INTEGER_CONSTANT_P
+#ifdef HAVE_PG_INTEGER_CONSTANT_P
 #define ereport_domain(elevel, domain, ...)	\
 	do { \
 		pg_prevent_errno_in_scope(); \
-		if (pg_builtin_integer_constant_p(elevel) && (elevel) >= ERROR ? \
+		if (pg_integer_constant_p(elevel) && (elevel) >= ERROR ? \
 			errstart_cold(elevel, domain) : \
 			errstart(elevel, domain)) \
 			__VA_ARGS__, errfinish(__FILE__, __LINE__, __func__); \
-		if (pg_builtin_integer_constant_p(elevel) && (elevel) >= ERROR) \
+		if (pg_integer_constant_p(elevel) && (elevel) >= ERROR) \
 			pg_unreachable(); \
 	} while(0)
-#else							/* !HAVE_PG_BUILTIN_INTEGER_CONSTANT_P */
+#else							/* !HAVE_PG_INTEGER_CONSTANT_P */
 #define ereport_domain(elevel, domain, ...)	\
 	do { \
 		const int elevel_ = (elevel); \
@@ -159,7 +159,7 @@ struct Node;
 		if (elevel_ >= ERROR) \
 			pg_unreachable(); \
 	} while(0)
-#endif							/* HAVE_PG_BUILTIN_INTEGER_CONSTANT_P */
+#endif							/* HAVE_PG_INTEGER_CONSTANT_P */
 
 #define ereport(elevel, ...)	\
 	ereport_domain(elevel, TEXTDOMAIN, __VA_ARGS__)
-- 
2.51.0