mirror of
https://github.com/postgres/postgres.git
synced 2025-10-19 15:49:24 +03:00
Rely on __func__ being supported
Previously we fell back to __FUNCTION__ and then NULL. As __func__ is in C99
that shouldn't be necessary anymore.
Solution.pm defined HAVE_FUNCNAME__FUNCTION instead of
HAVE_FUNCNAME__FUNC (originating in 4164e6636e
), as at some point in the past
MSVC only supported __FUNCTION__. Our minimum version supports __func__.
Reviewed-By: Thomas Munro <thomas.munro@gmail.com>
Discussion: https://postgr.es/m/20220807012914.ydz73yte6j3coulo@awork3.anarazel.de
This commit is contained in:
@@ -304,7 +304,7 @@ main()
|
||||
printf(" if S_LOCK() and TAS() are working.\n");
|
||||
fflush(stdout);
|
||||
|
||||
s_lock(&test_lock.lock, __FILE__, __LINE__, PG_FUNCNAME_MACRO);
|
||||
s_lock(&test_lock.lock, __FILE__, __LINE__, __func__);
|
||||
|
||||
printf("S_LOCK_TEST: failed, lock not locked\n");
|
||||
return 1;
|
||||
|
@@ -360,17 +360,6 @@ typedef void (*pg_funcptr_t) (void);
|
||||
*/
|
||||
#define FLEXIBLE_ARRAY_MEMBER /* empty */
|
||||
|
||||
/* Which __func__ symbol do we have, if any? */
|
||||
#ifdef HAVE_FUNCNAME__FUNC
|
||||
#define PG_FUNCNAME_MACRO __func__
|
||||
#else
|
||||
#ifdef HAVE_FUNCNAME__FUNCTION
|
||||
#define PG_FUNCNAME_MACRO __FUNCTION__
|
||||
#else
|
||||
#define PG_FUNCNAME_MACRO NULL
|
||||
#endif
|
||||
#endif
|
||||
|
||||
|
||||
/* ----------------------------------------------------------------
|
||||
* Section 2: bool, true, false
|
||||
|
@@ -158,12 +158,6 @@
|
||||
/* Define to 1 if fseeko (and presumably ftello) exists and is declared. */
|
||||
#undef HAVE_FSEEKO
|
||||
|
||||
/* Define to 1 if your compiler understands __func__. */
|
||||
#undef HAVE_FUNCNAME__FUNC
|
||||
|
||||
/* Define to 1 if your compiler understands __FUNCTION__. */
|
||||
#undef HAVE_FUNCNAME__FUNCTION
|
||||
|
||||
/* Define to 1 if you have __atomic_compare_exchange_n(int *, int *, int). */
|
||||
#undef HAVE_GCC__ATOMIC_INT32_CAS
|
||||
|
||||
|
@@ -768,7 +768,7 @@ extern int tas_sema(volatile slock_t *lock);
|
||||
|
||||
#if !defined(S_LOCK)
|
||||
#define S_LOCK(lock) \
|
||||
(TAS(lock) ? s_lock((lock), __FILE__, __LINE__, PG_FUNCNAME_MACRO) : 0)
|
||||
(TAS(lock) ? s_lock((lock), __FILE__, __LINE__, __func__) : 0)
|
||||
#endif /* S_LOCK */
|
||||
|
||||
#if !defined(S_LOCK_FREE)
|
||||
@@ -855,7 +855,7 @@ init_spin_delay(SpinDelayStatus *status,
|
||||
status->func = func;
|
||||
}
|
||||
|
||||
#define init_local_spin_delay(status) init_spin_delay(status, __FILE__, __LINE__, PG_FUNCNAME_MACRO)
|
||||
#define init_local_spin_delay(status) init_spin_delay(status, __FILE__, __LINE__, __func__)
|
||||
extern void perform_spin_delay(SpinDelayStatus *status);
|
||||
extern void finish_spin_delay(SpinDelayStatus *status);
|
||||
|
||||
|
@@ -140,7 +140,7 @@
|
||||
if (__builtin_constant_p(elevel) && (elevel) >= ERROR ? \
|
||||
errstart_cold(elevel, domain) : \
|
||||
errstart(elevel, domain)) \
|
||||
__VA_ARGS__, errfinish(__FILE__, __LINE__, PG_FUNCNAME_MACRO); \
|
||||
__VA_ARGS__, errfinish(__FILE__, __LINE__, __func__); \
|
||||
if (__builtin_constant_p(elevel) && (elevel) >= ERROR) \
|
||||
pg_unreachable(); \
|
||||
} while(0)
|
||||
@@ -150,7 +150,7 @@
|
||||
const int elevel_ = (elevel); \
|
||||
pg_prevent_errno_in_scope(); \
|
||||
if (errstart(elevel_, domain)) \
|
||||
__VA_ARGS__, errfinish(__FILE__, __LINE__, PG_FUNCNAME_MACRO); \
|
||||
__VA_ARGS__, errfinish(__FILE__, __LINE__, __func__); \
|
||||
if (elevel_ >= ERROR) \
|
||||
pg_unreachable(); \
|
||||
} while(0)
|
||||
|
@@ -250,8 +250,6 @@ sub GenerateFiles
|
||||
HAVE_EXECINFO_H => undef,
|
||||
HAVE_EXPLICIT_BZERO => undef,
|
||||
HAVE_FSEEKO => 1,
|
||||
HAVE_FUNCNAME__FUNC => undef,
|
||||
HAVE_FUNCNAME__FUNCTION => 1,
|
||||
HAVE_GCC__ATOMIC_INT32_CAS => undef,
|
||||
HAVE_GCC__ATOMIC_INT64_CAS => undef,
|
||||
HAVE_GCC__SYNC_CHAR_TAS => undef,
|
||||
|
Reference in New Issue
Block a user