mirror of
https://github.com/vim/vim.git
synced 2025-09-24 03:44:06 -04:00
patch 8.0.1709: some non-C89 code may slip through
Problem: Some non-C89 code may slip through. Solution: Enforce C89 in configure. Fix detected problems. (James McCoy, closes #2735)
This commit is contained in:
99
src/auto/configure
vendored
99
src/auto/configure
vendored
@@ -3449,6 +3449,97 @@ ac_cpp='$CPP $CPPFLAGS'
|
|||||||
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
|
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
|
||||||
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
|
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
|
||||||
ac_compiler_gnu=$ac_cv_c_compiler_gnu
|
ac_compiler_gnu=$ac_cv_c_compiler_gnu
|
||||||
|
|
||||||
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5
|
||||||
|
$as_echo_n "checking for $CC option to accept ISO C89... " >&6; }
|
||||||
|
if ${ac_cv_prog_cc_c89+:} false; then :
|
||||||
|
$as_echo_n "(cached) " >&6
|
||||||
|
else
|
||||||
|
ac_cv_prog_cc_c89=no
|
||||||
|
ac_save_CC=$CC
|
||||||
|
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||||
|
/* end confdefs.h. */
|
||||||
|
#include <stdarg.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
struct stat;
|
||||||
|
/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */
|
||||||
|
struct buf { int x; };
|
||||||
|
FILE * (*rcsopen) (struct buf *, struct stat *, int);
|
||||||
|
static char *e (p, i)
|
||||||
|
char **p;
|
||||||
|
int i;
|
||||||
|
{
|
||||||
|
return p[i];
|
||||||
|
}
|
||||||
|
static char *f (char * (*g) (char **, int), char **p, ...)
|
||||||
|
{
|
||||||
|
char *s;
|
||||||
|
va_list v;
|
||||||
|
va_start (v,p);
|
||||||
|
s = g (p, va_arg (v,int));
|
||||||
|
va_end (v);
|
||||||
|
return s;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has
|
||||||
|
function prototypes and stuff, but not '\xHH' hex character constants.
|
||||||
|
These don't provoke an error unfortunately, instead are silently treated
|
||||||
|
as 'x'. The following induces an error, until -std is added to get
|
||||||
|
proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an
|
||||||
|
array size at least. It's necessary to write '\x00'==0 to get something
|
||||||
|
that's true only with -std. */
|
||||||
|
int osf4_cc_array ['\x00' == 0 ? 1 : -1];
|
||||||
|
|
||||||
|
/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters
|
||||||
|
inside strings and character constants. */
|
||||||
|
#define FOO(x) 'x'
|
||||||
|
int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1];
|
||||||
|
|
||||||
|
int test (int i, double x);
|
||||||
|
struct s1 {int (*f) (int a);};
|
||||||
|
struct s2 {int (*f) (double a);};
|
||||||
|
int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
|
||||||
|
int argc;
|
||||||
|
char **argv;
|
||||||
|
int
|
||||||
|
main ()
|
||||||
|
{
|
||||||
|
return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1];
|
||||||
|
;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
_ACEOF
|
||||||
|
for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \
|
||||||
|
-Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
|
||||||
|
do
|
||||||
|
CC="$ac_save_CC $ac_arg"
|
||||||
|
if ac_fn_c_try_compile "$LINENO"; then :
|
||||||
|
ac_cv_prog_cc_c89=$ac_arg
|
||||||
|
fi
|
||||||
|
rm -f core conftest.err conftest.$ac_objext
|
||||||
|
test "x$ac_cv_prog_cc_c89" != "xno" && break
|
||||||
|
done
|
||||||
|
rm -f conftest.$ac_ext
|
||||||
|
CC=$ac_save_CC
|
||||||
|
|
||||||
|
fi
|
||||||
|
# AC_CACHE_VAL
|
||||||
|
case "x$ac_cv_prog_cc_c89" in
|
||||||
|
x)
|
||||||
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
|
||||||
|
$as_echo "none needed" >&6; } ;;
|
||||||
|
xno)
|
||||||
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
|
||||||
|
$as_echo "unsupported" >&6; } ;;
|
||||||
|
*)
|
||||||
|
CC="$CC $ac_cv_prog_cc_c89"
|
||||||
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5
|
||||||
|
$as_echo "$ac_cv_prog_cc_c89" >&6; } ;;
|
||||||
|
esac
|
||||||
|
if test "x$ac_cv_prog_cc_c89" != xno; then :
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
||||||
ac_ext=c
|
ac_ext=c
|
||||||
ac_cpp='$CPP $CPPFLAGS'
|
ac_cpp='$CPP $CPPFLAGS'
|
||||||
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
|
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
|
||||||
@@ -4115,6 +4206,8 @@ if test "$GCC" = yes; then
|
|||||||
CFLAGS="$CFLAGS -fno-strength-reduce"
|
CFLAGS="$CFLAGS -fno-strength-reduce"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
CPPFLAGS="$CPPFLAGS -D_POSIX_C_SOURCE=200809L -D_XOPEN_SOURCE=700"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for clang version" >&5
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for clang version" >&5
|
||||||
@@ -4187,7 +4280,7 @@ if test "`(uname) 2>/dev/null`" = Darwin; then
|
|||||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
|
||||||
$as_echo "yes" >&6; }
|
$as_echo "yes" >&6; }
|
||||||
MACOS_X=yes
|
MACOS_X=yes
|
||||||
CPPFLAGS="$CPPFLAGS -DMACOS_X"
|
CPPFLAGS="$CPPFLAGS -D_DARWIN_C_SOURCE -DMACOS_X"
|
||||||
|
|
||||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking --disable-darwin argument" >&5
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking --disable-darwin argument" >&5
|
||||||
$as_echo_n "checking --disable-darwin argument... " >&6; }
|
$as_echo_n "checking --disable-darwin argument... " >&6; }
|
||||||
@@ -14341,6 +14434,10 @@ if test "$zOSUnix" = "yes"; then
|
|||||||
CFLAGS="-D_ALL_SOURCE -Wc,float\(ieee\),dll"
|
CFLAGS="-D_ALL_SOURCE -Wc,float\(ieee\),dll"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if test "$GCC" = yes -a "$GUITYPE" != "GTK"; then
|
||||||
|
CFLAGS="$CFLAGS -ansi"
|
||||||
|
fi
|
||||||
|
|
||||||
ac_config_files="$ac_config_files auto/config.mk:config.mk.in"
|
ac_config_files="$ac_config_files auto/config.mk:config.mk.in"
|
||||||
|
|
||||||
cat >confcache <<\_ACEOF
|
cat >confcache <<\_ACEOF
|
||||||
|
@@ -672,9 +672,9 @@ channel_open(
|
|||||||
{
|
{
|
||||||
char *p;
|
char *p;
|
||||||
|
|
||||||
/* When using host->h_addr directly ubsan warns for it to not be
|
/* When using host->h_addr_list[0] directly ubsan warns for it to not
|
||||||
* aligned. First copy the pointer to aviod that. */
|
* be aligned. First copy the pointer to avoid that. */
|
||||||
memcpy(&p, &host->h_addr, sizeof(p));
|
memcpy(&p, &host->h_addr_list[0], sizeof(p));
|
||||||
memcpy((char *)&server.sin_addr, p, host->h_length);
|
memcpy((char *)&server.sin_addr, p, host->h_length);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -11,7 +11,7 @@ AC_DEFINE(UNIX)
|
|||||||
AC_PROG_MAKE_SET
|
AC_PROG_MAKE_SET
|
||||||
|
|
||||||
dnl Checks for programs.
|
dnl Checks for programs.
|
||||||
AC_PROG_CC dnl required by almost everything
|
AC_PROG_CC_C89 dnl required by almost everything
|
||||||
AC_PROG_CPP dnl required by header file checks
|
AC_PROG_CPP dnl required by header file checks
|
||||||
AC_PROGRAM_EGREP dnl required by AC_EGREP_CPP
|
AC_PROGRAM_EGREP dnl required by AC_EGREP_CPP
|
||||||
AC_PROG_FGREP dnl finds working grep -F
|
AC_PROG_FGREP dnl finds working grep -F
|
||||||
@@ -61,6 +61,9 @@ if test "$GCC" = yes; then
|
|||||||
CFLAGS="$CFLAGS -fno-strength-reduce"
|
CFLAGS="$CFLAGS -fno-strength-reduce"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
dnl Declare what standards the code should comply with
|
||||||
|
CPPFLAGS="$CPPFLAGS -D_POSIX_C_SOURCE=200809L -D_XOPEN_SOURCE=700"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
dnl clang-500.2.75 or around has abandoned -f[no-]strength-reduce and issues a
|
dnl clang-500.2.75 or around has abandoned -f[no-]strength-reduce and issues a
|
||||||
@@ -135,7 +138,7 @@ AC_MSG_CHECKING([for Darwin (Mac OS X)])
|
|||||||
if test "`(uname) 2>/dev/null`" = Darwin; then
|
if test "`(uname) 2>/dev/null`" = Darwin; then
|
||||||
AC_MSG_RESULT(yes)
|
AC_MSG_RESULT(yes)
|
||||||
MACOS_X=yes
|
MACOS_X=yes
|
||||||
CPPFLAGS="$CPPFLAGS -DMACOS_X"
|
CPPFLAGS="$CPPFLAGS -D_DARWIN_C_SOURCE -DMACOS_X"
|
||||||
|
|
||||||
AC_MSG_CHECKING(--disable-darwin argument)
|
AC_MSG_CHECKING(--disable-darwin argument)
|
||||||
AC_ARG_ENABLE(darwin,
|
AC_ARG_ENABLE(darwin,
|
||||||
@@ -4400,6 +4403,12 @@ if test "$zOSUnix" = "yes"; then
|
|||||||
CFLAGS="-D_ALL_SOURCE -Wc,float\(ieee\),dll"
|
CFLAGS="-D_ALL_SOURCE -Wc,float\(ieee\),dll"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
dnl Declare what standards the code should comply with. But not when using
|
||||||
|
dnl GTK, the header files cause all kinds of warnings.
|
||||||
|
if test "$GCC" = yes -a "$GUITYPE" != "GTK"; then
|
||||||
|
CFLAGS="$CFLAGS -ansi"
|
||||||
|
fi
|
||||||
|
|
||||||
dnl write output files
|
dnl write output files
|
||||||
AC_OUTPUT(auto/config.mk:config.mk.in)
|
AC_OUTPUT(auto/config.mk:config.mk.in)
|
||||||
|
|
||||||
|
@@ -5607,15 +5607,17 @@ gui_mch_free_font(GuiFont font)
|
|||||||
guicolor_T
|
guicolor_T
|
||||||
gui_mch_get_color(char_u *name)
|
gui_mch_get_color(char_u *name)
|
||||||
{
|
{
|
||||||
|
guicolor_T color = INVALCOLOR;
|
||||||
|
|
||||||
if (!gui.in_use) /* can't do this when GUI not running */
|
if (!gui.in_use) /* can't do this when GUI not running */
|
||||||
return INVALCOLOR;
|
return color;
|
||||||
|
|
||||||
|
if (name != NULL)
|
||||||
|
color = gui_get_color_cmn(name);
|
||||||
|
|
||||||
#if GTK_CHECK_VERSION(3,0,0)
|
#if GTK_CHECK_VERSION(3,0,0)
|
||||||
return name != NULL ? gui_get_color_cmn(name) : INVALCOLOR;
|
return color;
|
||||||
#else
|
#else
|
||||||
guicolor_T color;
|
|
||||||
|
|
||||||
color = (name != NULL) ? gui_get_color_cmn(name) : INVALCOLOR;
|
|
||||||
if (color == INVALCOLOR)
|
if (color == INVALCOLOR)
|
||||||
return INVALCOLOR;
|
return INVALCOLOR;
|
||||||
|
|
||||||
|
@@ -815,7 +815,7 @@ python3_end(void)
|
|||||||
#endif
|
#endif
|
||||||
if (Py_IsInitialized())
|
if (Py_IsInitialized())
|
||||||
{
|
{
|
||||||
// acquire lock before finalizing
|
/* acquire lock before finalizing */
|
||||||
PyGILState_Ensure();
|
PyGILState_Ensure();
|
||||||
|
|
||||||
Py_Finalize();
|
Py_Finalize();
|
||||||
|
@@ -762,6 +762,8 @@ static char *(features[]) =
|
|||||||
|
|
||||||
static int included_patches[] =
|
static int included_patches[] =
|
||||||
{ /* Add new patch number below this line */
|
{ /* Add new patch number below this line */
|
||||||
|
/**/
|
||||||
|
1709,
|
||||||
/**/
|
/**/
|
||||||
1708,
|
1708,
|
||||||
/**/
|
/**/
|
||||||
|
Reference in New Issue
Block a user