From: Paul Eggert Date: Sat, 26 Nov 2016 05:24:28 +0000 (-0800) Subject: Port build to gcc -fcheck-pointer-bounds X-Git-Tag: emacs-26.0.90~1263 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=d2d4b0746500265eddfa3c618bd6670aaa5eee90;p=emacs.git Port build to gcc -fcheck-pointer-bounds This does not let Emacs run, just build. * lib-src/etags.c (main): * lib-src/profile.c (main): Use return, not exit. * src/bytecode.c (BYTE_CODE_THREADED) [__CHKP__]: Do not define, as -fcheck-pointer-bounds is incompatible with taking addresses of labels. * src/menu.c (Fx_popup_dialog): Use eassume, not eassert, to pacify gcc -fcheck-pointer-bounds -Wnull-dereference. --- diff --git a/lib-src/etags.c b/lib-src/etags.c index e5d76d4c591..6a722e0641c 100644 --- a/lib-src/etags.c +++ b/lib-src/etags.c @@ -1330,7 +1330,7 @@ main (int argc, char **argv) pfatal (tagfile); } - exit (EXIT_SUCCESS); + return EXIT_SUCCESS; } /* From here on, we are in (CTAGS && !cxref_style) */ @@ -1383,7 +1383,7 @@ main (int argc, char **argv) z = stpcpy (z, tagfile); *z++ = ' '; strcpy (z, tagfile); - exit (system (cmd)); + return system (cmd); } return EXIT_SUCCESS; } diff --git a/lib-src/profile.c b/lib-src/profile.c index edd36cafd37..cfee5b8608f 100644 --- a/lib-src/profile.c +++ b/lib-src/profile.c @@ -85,13 +85,13 @@ main (void) puts (get_time ()); break; case 'q': - exit (EXIT_SUCCESS); + return EXIT_SUCCESS; } /* Anything remaining on the line is ignored. */ while (c != '\n' && c != EOF) c = getchar (); } - exit (EXIT_FAILURE); + return EXIT_FAILURE; } diff --git a/src/bytecode.c b/src/bytecode.c index e2d8ab706c7..be39a81c5e9 100644 --- a/src/bytecode.c +++ b/src/bytecode.c @@ -46,7 +46,7 @@ along with GNU Emacs. If not, see . */ indirect threaded, using GCC's computed goto extension. This code, as currently implemented, is incompatible with BYTE_CODE_SAFE and BYTE_CODE_METER. */ -#if (defined __GNUC__ && !defined __STRICT_ANSI__ \ +#if (defined __GNUC__ && !defined __STRICT_ANSI__ && !defined __CHKP__ \ && !BYTE_CODE_SAFE && !defined BYTE_CODE_METER) #define BYTE_CODE_THREADED #endif diff --git a/src/menu.c b/src/menu.c index 638810b36f8..80709679513 100644 --- a/src/menu.c +++ b/src/menu.c @@ -1540,7 +1540,7 @@ for instance using the window manager, then this produces a quit and /* Note that xw_popup_dialog can call menu code, so Vmenu_updating_frame should be set (Bug#17891). */ - eassert (f && FRAME_LIVE_P (f)); + eassume (f && FRAME_LIVE_P (f)); XSETFRAME (Vmenu_updating_frame, f); /* Force a redisplay before showing the dialog. If a frame is created