[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] emacs-25 7950e1d: Port to clang 3.7.0 on x86-64
From: |
Paul Eggert |
Subject: |
[Emacs-diffs] emacs-25 7950e1d: Port to clang 3.7.0 on x86-64 |
Date: |
Tue, 15 Mar 2016 20:50:01 +0000 |
branch: emacs-25
commit 7950e1dd3fc1ce07cc4d6001de6c11a249b80de8
Author: Paul Eggert <address@hidden>
Commit: Paul Eggert <address@hidden>
Port to clang 3.7.0 on x86-64
* configure.ac: Use AS_IF so that gl_WARN_ADD’s prerequisites are
not done conditionally. This helps clang, which needs
-Wunknown-warning-option later when configured with warnings.
* src/editfns.c (invalid_time): Now _Noreturn, since clang isn’t
smart enough to figure this out on its own if warnings are enabled.
(lisp_time_struct): Redo for clarity, and to pacify clang.
* src/xfns.c (x_real_pos_and_offsets) [USE_XCB]: Don’t use
uninitialized locals. This avoids undefined behavior and pacifies
clang.
---
configure.ac | 18 +++++++++---------
src/editfns.c | 6 ++++--
src/xfns.c | 2 +-
3 files changed, 14 insertions(+), 12 deletions(-)
diff --git a/configure.ac b/configure.ac
index 075f611..d31b8df 100644
--- a/configure.ac
+++ b/configure.ac
@@ -877,18 +877,19 @@ AC_CACHE_CHECK([whether the compiler is clang],
[emacs_cv_clang],
# When compiling with GCC, prefer -isystem to -I when including system
# include files, to avoid generating useless diagnostics for the files.
-if test "$gl_gcc_warnings" != yes; then
+AS_IF([test "$gl_gcc_warnings" != yes],
+ [
isystem='-I'
- if test "$emacs_cv_clang" = yes
- then
+ AS_IF([test "$emacs_cv_clang" = yes],
+ [
# Turn off some warnings if supported.
gl_WARN_ADD([-Wno-switch])
gl_WARN_ADD([-Wno-tautological-constant-out-of-range-compare])
gl_WARN_ADD([-Wno-pointer-sign])
gl_WARN_ADD([-Wno-string-plus-int])
gl_WARN_ADD([-Wno-unknown-attributes])
- fi
-else
+ ])
+ ],[
isystem='-isystem '
# This, $nw, is the list of warnings we disable.
@@ -899,10 +900,9 @@ else
# Old toolkits mishandle 'const'.
nw="$nw -Wwrite-strings"
;;
- *)
- gl_WARN_ADD([-Werror], [WERROR_CFLAGS])
- ;;
esac
+ AS_IF([test -z "$nw"],
+ [gl_WARN_ADD([-Werror], [WERROR_CFLAGS])])
AC_SUBST([WERROR_CFLAGS])
nw="$nw -Wsystem-headers" # Don't let system headers trigger warnings
@@ -985,7 +985,7 @@ else
gl_MANYWARN_COMPLEMENT([GNULIB_WARN_CFLAGS], [$WARN_CFLAGS], [$nw])
AC_SUBST([GNULIB_WARN_CFLAGS])
-fi
+ ])
edit_cflags="
s,///*,/,g
diff --git a/src/editfns.c b/src/editfns.c
index df98223..2ac0537 100644
--- a/src/editfns.c
+++ b/src/editfns.c
@@ -1456,7 +1456,7 @@ time_overflow (void)
error ("Specified time is not representable");
}
-static void
+static _Noreturn void
invalid_time (void)
{
error ("Invalid time specification");
@@ -1848,7 +1848,9 @@ lisp_time_struct (Lisp_Object specified_time, int *plen)
Lisp_Object high, low, usec, psec;
struct lisp_time t;
int len = disassemble_lisp_time (specified_time, &high, &low, &usec, &psec);
- int val = len ? decode_time_components (high, low, usec, psec, &t, 0) : 0;
+ if (!len)
+ invalid_time ();
+ int val = decode_time_components (high, low, usec, psec, &t, 0);
check_time_validity (val);
*plen = len;
return t;
diff --git a/src/xfns.c b/src/xfns.c
index 0a4a09e..b22af5c 100644
--- a/src/xfns.c
+++ b/src/xfns.c
@@ -273,7 +273,7 @@ x_real_pos_and_offsets (struct frame *f,
XFree (tmp_children);
#endif
- if (wm_window == rootw || had_errors)
+ if (had_errors || wm_window == rootw)
break;
win = wm_window;
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] emacs-25 7950e1d: Port to clang 3.7.0 on x86-64,
Paul Eggert <=