提交 8ecdefc2 编写于 作者: A Andres Freund

Remove test for VA_ARGS, implied by C99.

This simplifies logic / reduces duplication in a few headers.

Author: Andres Freund
Discussion: https://postgr.es/m/97d4b165-192d-3605-749c-f614a0c4e783@2ndquadrant.com
上级 cb925205
...@@ -415,25 +415,6 @@ fi])# PGAC_C_COMPUTED_GOTO ...@@ -415,25 +415,6 @@ fi])# PGAC_C_COMPUTED_GOTO
# PGAC_C_VA_ARGS
# --------------
# Check if the C compiler understands C99-style variadic macros,
# and define HAVE__VA_ARGS if so.
AC_DEFUN([PGAC_C_VA_ARGS],
[AC_CACHE_CHECK(for __VA_ARGS__, pgac_cv__va_args,
[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <stdio.h>],
[#define debug(...) fprintf(stderr, __VA_ARGS__)
debug("%s", "blarg");
])],
[pgac_cv__va_args=yes],
[pgac_cv__va_args=no])])
if test x"$pgac_cv__va_args" = xyes ; then
AC_DEFINE(HAVE__VA_ARGS, 1,
[Define to 1 if your compiler understands __VA_ARGS__ in macros.])
fi])# PGAC_C_VA_ARGS
# PGAC_PROG_VARCC_VARFLAGS_OPT # PGAC_PROG_VARCC_VARFLAGS_OPT
# ----------------------- # -----------------------
# Given a compiler, variable name and a string, check if the compiler # Given a compiler, variable name and a string, check if the compiler
......
...@@ -13973,38 +13973,6 @@ if test x"$pgac_cv_computed_goto" = xyes ; then ...@@ -13973,38 +13973,6 @@ if test x"$pgac_cv_computed_goto" = xyes ; then
$as_echo "#define HAVE_COMPUTED_GOTO 1" >>confdefs.h $as_echo "#define HAVE_COMPUTED_GOTO 1" >>confdefs.h
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for __VA_ARGS__" >&5
$as_echo_n "checking for __VA_ARGS__... " >&6; }
if ${pgac_cv__va_args+:} false; then :
$as_echo_n "(cached) " >&6
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <stdio.h>
int
main ()
{
#define debug(...) fprintf(stderr, __VA_ARGS__)
debug("%s", "blarg");
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
pgac_cv__va_args=yes
else
pgac_cv__va_args=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $pgac_cv__va_args" >&5
$as_echo "$pgac_cv__va_args" >&6; }
if test x"$pgac_cv__va_args" = xyes ; then
$as_echo "#define HAVE__VA_ARGS 1" >>confdefs.h
fi fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether struct tm is in sys/time.h or time.h" >&5 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether struct tm is in sys/time.h or time.h" >&5
$as_echo_n "checking whether struct tm is in sys/time.h or time.h... " >&6; } $as_echo_n "checking whether struct tm is in sys/time.h or time.h... " >&6; }
......
...@@ -1434,7 +1434,6 @@ PGAC_C_BUILTIN_BSWAP64 ...@@ -1434,7 +1434,6 @@ PGAC_C_BUILTIN_BSWAP64
PGAC_C_BUILTIN_CONSTANT_P PGAC_C_BUILTIN_CONSTANT_P
PGAC_C_BUILTIN_UNREACHABLE PGAC_C_BUILTIN_UNREACHABLE
PGAC_C_COMPUTED_GOTO PGAC_C_COMPUTED_GOTO
PGAC_C_VA_ARGS
PGAC_STRUCT_TIMEZONE PGAC_STRUCT_TIMEZONE
PGAC_UNION_SEMUN PGAC_UNION_SEMUN
PGAC_STRUCT_SOCKADDR_UN PGAC_STRUCT_SOCKADDR_UN
......
...@@ -758,9 +758,6 @@ ...@@ -758,9 +758,6 @@
/* Define to 1 if your compiler understands _Static_assert. */ /* Define to 1 if your compiler understands _Static_assert. */
#undef HAVE__STATIC_ASSERT #undef HAVE__STATIC_ASSERT
/* Define to 1 if your compiler understands __VA_ARGS__ in macros. */
#undef HAVE__VA_ARGS
/* Define to 1 if you have the `__strtoll' function. */ /* Define to 1 if you have the `__strtoll' function. */
#undef HAVE___STRTOLL #undef HAVE___STRTOLL
......
...@@ -601,9 +601,6 @@ ...@@ -601,9 +601,6 @@
/* Define to 1 if your compiler understands _Static_assert. */ /* Define to 1 if your compiler understands _Static_assert. */
/* #undef HAVE__STATIC_ASSERT */ /* #undef HAVE__STATIC_ASSERT */
/* Define to 1 if your compiler understands __VA_ARGS__ in macros. */
#define HAVE__VA_ARGS 1
/* Define to the appropriate printf length modifier for 64-bit ints. */ /* Define to the appropriate printf length modifier for 64-bit ints. */
#define INT64_MODIFIER "ll" #define INT64_MODIFIER "ll"
......
...@@ -207,9 +207,8 @@ extern int getinternalerrposition(void); ...@@ -207,9 +207,8 @@ extern int getinternalerrposition(void);
* elog(ERROR, "portal \"%s\" not found", stmt->portalname); * elog(ERROR, "portal \"%s\" not found", stmt->portalname);
*---------- *----------
*/ */
#ifdef HAVE__VA_ARGS
/* /*
* If we have variadic macros, we can give the compiler a hint about the * Using variadic macros, we can give the compiler a hint about the
* call not returning when elevel >= ERROR. See comments for ereport(). * call not returning when elevel >= ERROR. See comments for ereport().
* Note that historically elog() has called elog_start (which saves errno) * Note that historically elog() has called elog_start (which saves errno)
* before evaluating "elevel", so we preserve that behavior here. * before evaluating "elevel", so we preserve that behavior here.
...@@ -236,11 +235,6 @@ extern int getinternalerrposition(void); ...@@ -236,11 +235,6 @@ extern int getinternalerrposition(void);
} \ } \
} while(0) } while(0)
#endif /* HAVE__BUILTIN_CONSTANT_P */ #endif /* HAVE__BUILTIN_CONSTANT_P */
#else /* !HAVE__VA_ARGS */
#define elog \
elog_start(__FILE__, __LINE__, PG_FUNCNAME_MACRO), \
elog_finish
#endif /* HAVE__VA_ARGS */
extern void elog_start(const char *filename, int lineno, const char *funcname); extern void elog_start(const char *filename, int lineno, const char *funcname);
extern void elog_finish(int elevel, const char *fmt,...) pg_attribute_printf(2, 3); extern void elog_finish(int elevel, const char *fmt,...) pg_attribute_printf(2, 3);
......
...@@ -15,7 +15,6 @@ extern PyObject *PLy_exc_spi_error; ...@@ -15,7 +15,6 @@ extern PyObject *PLy_exc_spi_error;
* *
* See comments at elog() about the compiler hinting. * See comments at elog() about the compiler hinting.
*/ */
#ifdef HAVE__VA_ARGS
#ifdef HAVE__BUILTIN_CONSTANT_P #ifdef HAVE__BUILTIN_CONSTANT_P
#define PLy_elog(elevel, ...) \ #define PLy_elog(elevel, ...) \
do { \ do { \
...@@ -32,9 +31,6 @@ extern PyObject *PLy_exc_spi_error; ...@@ -32,9 +31,6 @@ extern PyObject *PLy_exc_spi_error;
pg_unreachable(); \ pg_unreachable(); \
} while(0) } while(0)
#endif /* HAVE__BUILTIN_CONSTANT_P */ #endif /* HAVE__BUILTIN_CONSTANT_P */
#else /* !HAVE__VA_ARGS */
#define PLy_elog PLy_elog_impl
#endif /* HAVE__VA_ARGS */
extern void PLy_elog_impl(int elevel, const char *fmt,...) pg_attribute_printf(2, 3); extern void PLy_elog_impl(int elevel, const char *fmt,...) pg_attribute_printf(2, 3);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册