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_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
|
||||
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_cpp='$CPP $CPPFLAGS'
|
||||
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
|
||||
@@ -4115,6 +4206,8 @@ if test "$GCC" = yes; then
|
||||
CFLAGS="$CFLAGS -fno-strength-reduce"
|
||||
fi
|
||||
fi
|
||||
|
||||
CPPFLAGS="$CPPFLAGS -D_POSIX_C_SOURCE=200809L -D_XOPEN_SOURCE=700"
|
||||
fi
|
||||
|
||||
{ $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 "yes" >&6; }
|
||||
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_n "checking --disable-darwin argument... " >&6; }
|
||||
@@ -14341,6 +14434,10 @@ if test "$zOSUnix" = "yes"; then
|
||||
CFLAGS="-D_ALL_SOURCE -Wc,float\(ieee\),dll"
|
||||
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"
|
||||
|
||||
cat >confcache <<\_ACEOF
|
||||
|
@@ -672,9 +672,9 @@ channel_open(
|
||||
{
|
||||
char *p;
|
||||
|
||||
/* When using host->h_addr directly ubsan warns for it to not be
|
||||
* aligned. First copy the pointer to aviod that. */
|
||||
memcpy(&p, &host->h_addr, sizeof(p));
|
||||
/* When using host->h_addr_list[0] directly ubsan warns for it to not
|
||||
* be aligned. First copy the pointer to avoid that. */
|
||||
memcpy(&p, &host->h_addr_list[0], sizeof(p));
|
||||
memcpy((char *)&server.sin_addr, p, host->h_length);
|
||||
}
|
||||
|
||||
|
@@ -11,7 +11,7 @@ AC_DEFINE(UNIX)
|
||||
AC_PROG_MAKE_SET
|
||||
|
||||
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_PROGRAM_EGREP dnl required by AC_EGREP_CPP
|
||||
AC_PROG_FGREP dnl finds working grep -F
|
||||
@@ -61,6 +61,9 @@ if test "$GCC" = yes; then
|
||||
CFLAGS="$CFLAGS -fno-strength-reduce"
|
||||
fi
|
||||
fi
|
||||
|
||||
dnl Declare what standards the code should comply with
|
||||
CPPFLAGS="$CPPFLAGS -D_POSIX_C_SOURCE=200809L -D_XOPEN_SOURCE=700"
|
||||
fi
|
||||
|
||||
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
|
||||
AC_MSG_RESULT(yes)
|
||||
MACOS_X=yes
|
||||
CPPFLAGS="$CPPFLAGS -DMACOS_X"
|
||||
CPPFLAGS="$CPPFLAGS -D_DARWIN_C_SOURCE -DMACOS_X"
|
||||
|
||||
AC_MSG_CHECKING(--disable-darwin argument)
|
||||
AC_ARG_ENABLE(darwin,
|
||||
@@ -4400,6 +4403,12 @@ if test "$zOSUnix" = "yes"; then
|
||||
CFLAGS="-D_ALL_SOURCE -Wc,float\(ieee\),dll"
|
||||
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
|
||||
AC_OUTPUT(auto/config.mk:config.mk.in)
|
||||
|
||||
|
@@ -5607,15 +5607,17 @@ gui_mch_free_font(GuiFont font)
|
||||
guicolor_T
|
||||
gui_mch_get_color(char_u *name)
|
||||
{
|
||||
guicolor_T color = INVALCOLOR;
|
||||
|
||||
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)
|
||||
return name != NULL ? gui_get_color_cmn(name) : INVALCOLOR;
|
||||
return color;
|
||||
#else
|
||||
guicolor_T color;
|
||||
|
||||
color = (name != NULL) ? gui_get_color_cmn(name) : INVALCOLOR;
|
||||
if (color == INVALCOLOR)
|
||||
return INVALCOLOR;
|
||||
|
||||
|
@@ -815,7 +815,7 @@ python3_end(void)
|
||||
#endif
|
||||
if (Py_IsInitialized())
|
||||
{
|
||||
// acquire lock before finalizing
|
||||
/* acquire lock before finalizing */
|
||||
PyGILState_Ensure();
|
||||
|
||||
Py_Finalize();
|
||||
|
@@ -762,6 +762,8 @@ static char *(features[]) =
|
||||
|
||||
static int included_patches[] =
|
||||
{ /* Add new patch number below this line */
|
||||
/**/
|
||||
1709,
|
||||
/**/
|
||||
1708,
|
||||
/**/
|
||||
|
Reference in New Issue
Block a user