[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] master 8c3215e 2/2: Port --enable-gcc-warnings to GCC 8
From: |
Paul Eggert |
Subject: |
[Emacs-diffs] master 8c3215e 2/2: Port --enable-gcc-warnings to GCC 8 |
Date: |
Sat, 28 Apr 2018 19:56:55 -0400 (EDT) |
branch: master
commit 8c3215e7a47e3caaa005bf573765ed63e0739b89
Author: Paul Eggert <address@hidden>
Commit: Paul Eggert <address@hidden>
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.
---
configure.ac | 1 +
lib-src/ebrowse.c | 2 +-
lib-src/emacsclient.c | 25 ++++++++++++++-----------
lib-src/etags.c | 2 +-
lib-src/make-docfile.c | 2 +-
lib-src/movemail.c | 2 +-
src/dispnew.c | 2 +-
src/frame.c | 1 +
src/menu.h | 2 +-
src/regex.c | 5 ++---
src/term.c | 2 +-
src/tparam.h | 2 +-
12 files changed, 26 insertions(+), 22 deletions(-)
diff --git a/configure.ac b/configure.ac
index d2269d6..a49b772 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 fa78c35..33af4f0 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 574bec8..739e6d5 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 <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);
diff --git a/lib-src/etags.c b/lib-src/etags.c
index 588921b..b3b4575 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 a5ed6e3..23728e7 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 4495c38..7a37e16 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 324c05d..b854d17 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 86caa32..da82621 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 104f6dc..fa32a86 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 a4e6441..85e63fe 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 8be5fb3..08d483f 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 3a3cb52..79c55b9 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;