]> git.eshelyaron.com Git - emacs.git/commitdiff
Port --enable-gcc-warnings to GCC 8
authorPaul Eggert <eggert@cs.ucla.edu>
Sat, 28 Apr 2018 23:49:24 +0000 (16:49 -0700)
committerPaul Eggert <eggert@cs.ucla.edu>
Sat, 28 Apr 2018 23:56:48 +0000 (16:56 -0700)
* 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.

12 files changed:
configure.ac
lib-src/ebrowse.c
lib-src/emacsclient.c
lib-src/etags.c
lib-src/make-docfile.c
lib-src/movemail.c
src/dispnew.c
src/frame.c
src/menu.h
src/regex.c
src/term.c
src/tparam.h

index d2269d6f35be4227968724baf265b9501f5a716c..a49b772797589330d90fa01fb6d6626b83ac07b5 100644 (file)
@@ -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
index fa78c35a8b46a00098a6bcb077098dad863ab073..33af4f02dafc5f2d58dd8b171eaf4b885cfdb431 100644 (file)
@@ -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);
index 574bec850fa692bcc7080495a8d799eb5c9add50..739e6d5949ef9b998da7b63257d21f84b2f61f6e 100644 (file)
@@ -192,7 +192,7 @@ struct option longopts[] =
 \f
 /* 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 <relpath> with the default directory
               corresponding to <drive>.  */
            {
-             char *filename = (char *) xmalloc (MAX_PATH);
+             char *filename = xmalloc (MAX_PATH);
              DWORD size;
 
              size = GetFullPathName (argv[i], MAX_PATH, filename, NULL);
index 588921bc70071d67bcf54f32ebb7d385731463af..b3b4575e0a686a95ef8417a85700c8462d24d154 100644 (file)
@@ -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);
index a5ed6e36071e79e29976d55e2ac70dc43fe03454..23728e7251e6f2b556c7b47e29c2ea88dfb623c0 100644 (file)
@@ -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);
index 4495c38f6ec58e6c5dabe1f70f993e42818608b2..7a37e164dd0d8816682d5e718f44e852f735c53c 100644 (file)
@@ -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);
index 324c05ddc4c45e3184e597273f94f1924eeedcbf..b854d179d51dc20d23d03f6cbbd4847fb3d672dc 100644 (file)
@@ -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);
index 86caa32615d572193f7651f9f9fa3be8f5e24c24..da82621b8a0631b90eb5439e2ffee56e015530ad 100644 (file)
@@ -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.
index 104f6dc81d2337a9790211aa5bd37037ff3ff86e..fa32a86d1c8be6b4ca2006c1e52eb90f1b85a7e0 100644 (file)
@@ -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);
index a4e6441cce36e04c2509516d97e23591c4cce897..85e63feea10cc34087c9406b4d3042aa800eb546 100644 (file)
 
 /* 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:
index 8be5fb319b0471319e524975ae33eb3f5084cada..08d483f4fa01c707974c731eea1c748207d93a05 100644 (file)
@@ -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 ());
index 3a3cb52c178ba3982eb2302c0c3b3db3b7be7405..79c55b94d2a24353aa4bdc26a7220e6565244ed7 100644 (file)
@@ -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;