From: Paul Eggert Date: Sat, 28 Apr 2018 23:49:24 +0000 (-0700) Subject: Port --enable-gcc-warnings to GCC 8 X-Git-Tag: emacs-27.0.90~5077 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=8c3215e7a47e3caaa005bf573765ed63e0739b89;p=emacs.git Port --enable-gcc-warnings to GCC 8 * configure.ac: Do not use GCC 8’s new -Wcast-align flag. * lib-src/ebrowse.c (xmalloc): * lib-src/emacsclient.c (xmalloc, xstrdup): * lib-src/etags.c (xmalloc): * lib-src/make-docfile.c (xmalloc): * lib-src/movemail.c (xmalloc): * src/dispnew.c (new_glyph_pool): * src/regex.c (xmalloc): * src/term.c (tty_menu_create): * src/tparam.h (tparam): Use ATTRIBUTE_MALLOC. Also see GCC bug 85562. * lib-src/emacsclient.c (fail): Do not dereference a null pointer. * src/frame.c (delete_frame): Add a decl with UNINIT to work around GCC bug 85563. * src/menu.h (finish_menu_items): Do not use attribute const. * src/regex.c (analyze_first): Use FALLTHROUGH, not a comment. --- diff --git a/configure.ac b/configure.ac index d2269d6f35b..a49b7727975 100644 --- a/configure.ac +++ b/configure.ac @@ -952,6 +952,7 @@ AS_IF([test $gl_gcc_warnings = no], AS_IF([test $gl_gcc_warnings = yes], [WERROR_CFLAGS=-Werror]) + nw="$nw -Wcast-align -Wcast-align=strict" # Emacs is tricky with pointers. nw="$nw -Wduplicated-branches" # Too many false alarms nw="$nw -Wformat-overflow=2" # False alarms due to GCC bug 80776 nw="$nw -Wsystem-headers" # Don't let system headers trigger warnings diff --git a/lib-src/ebrowse.c b/lib-src/ebrowse.c index fa78c35a8b4..33af4f02daf 100644 --- a/lib-src/ebrowse.c +++ b/lib-src/ebrowse.c @@ -494,7 +494,7 @@ yyerror (const char *format, const char *s) /* Like malloc but print an error and exit if not enough memory is available. */ -static void * +static void * ATTRIBUTE_MALLOC xmalloc (size_t nbytes) { void *p = malloc (nbytes); diff --git a/lib-src/emacsclient.c b/lib-src/emacsclient.c index 574bec850fa..739e6d5949e 100644 --- a/lib-src/emacsclient.c +++ b/lib-src/emacsclient.c @@ -192,7 +192,7 @@ struct option longopts[] = /* Like malloc but get fatal error if memory is exhausted. */ -static void * +static void * ATTRIBUTE_MALLOC xmalloc (size_t size) { void *result = malloc (size); @@ -219,7 +219,7 @@ xrealloc (void *ptr, size_t size) } /* Like strdup but get a fatal error if memory is exhausted. */ -char *xstrdup (const char *); +char *xstrdup (const char *) ATTRIBUTE_MALLOC; char * xstrdup (const char *s) @@ -261,7 +261,7 @@ get_current_dir_name (void) #endif ) { - buf = (char *) xmalloc (strlen (pwd) + 1); + buf = xmalloc (strlen (pwd) + 1); strcpy (buf, pwd); } else @@ -312,12 +312,15 @@ w32_get_resource (HKEY predefined, const char *key, LPDWORD type) if (RegOpenKeyEx (predefined, REG_ROOT, 0, KEY_READ, &hrootkey) == ERROR_SUCCESS) { - if (RegQueryValueEx (hrootkey, key, NULL, NULL, NULL, &cbData) == ERROR_SUCCESS) + if (RegQueryValueEx (hrootkey, key, NULL, NULL, NULL, &cbData) + == ERROR_SUCCESS) { - result = (char *) xmalloc (cbData); + result = xmalloc (cbData); - if ((RegQueryValueEx (hrootkey, key, NULL, type, (LPBYTE)result, &cbData) != ERROR_SUCCESS) - || (*result == 0)) + if ((RegQueryValueEx (hrootkey, key, NULL, type, (LPBYTE) result, + &cbData) + != ERROR_SUCCESS) + || *result == 0) { free (result); result = NULL; @@ -369,7 +372,7 @@ w32_getenv (const char *envvar) if ((size = ExpandEnvironmentStrings (value, NULL, 0))) { - char *buffer = (char *) xmalloc (size); + char *buffer = xmalloc (size); if (ExpandEnvironmentStrings (value, buffer, size)) { /* Found and expanded. */ @@ -700,7 +703,7 @@ fail (void) { size_t extra_args_size = (main_argc - optind + 1) * sizeof (char *); size_t new_argv_size = extra_args_size; - char **new_argv = NULL; + char **new_argv = xmalloc (new_argv_size); char *s = xstrdup (alternate_editor); unsigned toks = 0; @@ -833,7 +836,7 @@ send_to_emacs (HSOCKET s, const char *data) static void quote_argument (HSOCKET s, const char *str) { - char *copy = (char *) xmalloc (strlen (str) * 2 + 1); + char *copy = xmalloc (strlen (str) * 2 + 1); const char *p; char *q; @@ -1843,7 +1846,7 @@ main (int argc, char **argv) careful to expand with the default directory corresponding to . */ { - char *filename = (char *) xmalloc (MAX_PATH); + char *filename = xmalloc (MAX_PATH); DWORD size; size = GetFullPathName (argv[i], MAX_PATH, filename, NULL); diff --git a/lib-src/etags.c b/lib-src/etags.c index 588921bc700..b3b4575e0a6 100644 --- a/lib-src/etags.c +++ b/lib-src/etags.c @@ -7304,7 +7304,7 @@ linebuffer_setlen (linebuffer *lbp, int toksize) } /* Like malloc but get fatal error if memory is exhausted. */ -static void * +static void * ATTRIBUTE_MALLOC xmalloc (size_t size) { void *result = malloc (size); diff --git a/lib-src/make-docfile.c b/lib-src/make-docfile.c index a5ed6e36071..23728e7251e 100644 --- a/lib-src/make-docfile.c +++ b/lib-src/make-docfile.c @@ -123,7 +123,7 @@ memory_exhausted (void) /* Like malloc but get fatal error if memory is exhausted. */ -static void * +static void * ATTRIBUTE_MALLOC xmalloc (ptrdiff_t size) { void *result = malloc (size); diff --git a/lib-src/movemail.c b/lib-src/movemail.c index 4495c38f6ec..7a37e164dd0 100644 --- a/lib-src/movemail.c +++ b/lib-src/movemail.c @@ -145,7 +145,7 @@ static bool mbx_delimit_end (FILE *); || (!defined DISABLE_DIRECT_ACCESS && !defined MAIL_USE_SYSTEM_LOCK)) /* Like malloc but get fatal error if memory is exhausted. */ -static void * +static void * ATTRIBUTE_MALLOC xmalloc (size_t size) { void *result = malloc (size); diff --git a/src/dispnew.c b/src/dispnew.c index 324c05ddc4c..b854d179d51 100644 --- a/src/dispnew.c +++ b/src/dispnew.c @@ -1280,7 +1280,7 @@ row_equal_p (struct glyph_row *a, struct glyph_row *b, bool mouse_face_p) with zeros. If GLYPH_DEBUG and ENABLE_CHECKING are in effect, the global variable glyph_pool_count is incremented for each pool allocated. */ -static struct glyph_pool * +static struct glyph_pool * ATTRIBUTE_MALLOC new_glyph_pool (void) { struct glyph_pool *result = xzalloc (sizeof *result); diff --git a/src/frame.c b/src/frame.c index 86caa32615d..da82621b8a0 100644 --- a/src/frame.c +++ b/src/frame.c @@ -1937,6 +1937,7 @@ delete_frame (Lisp_Object frame, Lisp_Object force) if (f == sf) { Lisp_Object tail; + Lisp_Object frame1 UNINIT; /* This line works around GCC bug 85563. */ eassume (CONSP (Vframe_list)); /* Look for another visible frame on the same terminal. diff --git a/src/menu.h b/src/menu.h index 104f6dc81d2..fa32a86d1c8 100644 --- a/src/menu.h +++ b/src/menu.h @@ -30,7 +30,7 @@ enum { }; extern void init_menu_items (void); -extern void finish_menu_items (void) ATTRIBUTE_CONST; +extern void finish_menu_items (void); extern void discard_menu_items (void); extern void save_menu_items (void); extern bool parse_single_submenu (Lisp_Object, Lisp_Object, Lisp_Object); diff --git a/src/regex.c b/src/regex.c index a4e6441cce3..85e63feea10 100644 --- a/src/regex.c +++ b/src/regex.c @@ -212,7 +212,7 @@ /* When used in Emacs's lib-src, we need xmalloc and xrealloc. */ -static void * +static ATTRIBUTE_MALLOC void * xmalloc (size_t size) { void *val = malloc (size); @@ -4033,8 +4033,7 @@ analyze_first (re_char *p, re_char *pend, char *fastmap, }; /* Keep `p1' to allow the `on_failure_jump' we are jumping to to jump back to "just after here". */ - /* Fallthrough */ - + FALLTHROUGH; case on_failure_jump: case on_failure_keep_string_jump: case on_failure_jump_nastyloop: diff --git a/src/term.c b/src/term.c index 8be5fb319b0..08d483f4fa0 100644 --- a/src/term.c +++ b/src/term.c @@ -2721,7 +2721,7 @@ typedef struct tty_menu_struct /* Create a brand new menu structure. */ -static tty_menu * +static tty_menu * ATTRIBUTE_MALLOC tty_menu_create (void) { return xzalloc (sizeof *tty_menu_create ()); diff --git a/src/tparam.h b/src/tparam.h index 3a3cb52c178..79c55b94d2a 100644 --- a/src/tparam.h +++ b/src/tparam.h @@ -30,7 +30,7 @@ int tgetnum (const char *); char *tgetstr (const char *, char **); char *tgoto (const char *, int, int); -char *tparam (const char *, char *, int, int, int, int, int); +char *tparam (const char *, char *, int, int, int, int, int) ATTRIBUTE_MALLOC; extern char PC; extern char *BC;