diff options
author | Paul Eggert <eggert@cs.ucla.edu> | 2016-09-24 02:35:13 -0700 |
---|---|---|
committer | Paul Eggert <eggert@cs.ucla.edu> | 2016-09-24 02:35:29 -0700 |
commit | b3e1b382456b0f7d108c57d6f902bbddfdd97b2a (patch) | |
tree | aa3bcb76dfb30dace2811de0612a569daf250d8d /src/charset.c | |
parent | 4f05e930ca9ca4fa87aa2bc83187590432d792bd (diff) | |
download | emacs-b3e1b382456b0f7d108c57d6f902bbddfdd97b2a.tar.gz emacs-b3e1b382456b0f7d108c57d6f902bbddfdd97b2a.tar.bz2 emacs-b3e1b382456b0f7d108c57d6f902bbddfdd97b2a.zip |
Improve integer overflow handling a bit
* src/charset.c (read_hex): Use INT_LEFT_SHIFT_OVERFLOW for clarity.
The machine code is the same on my platform.
* src/doprnt.c (doprnt):
* src/emacs-module.c (module_funcall):
* src/font.c (font_intern_prop):
* src/keyboard.c (Frecursion_depth):
* src/lread.c (read1):
Use WRAPV macros instead of checking overflow by hand.
* src/editfns.c (hi_time, time_arith, decode_time_components):
* src/emacs-module.c (Fmodule_load):
Simplify by using FIXNUM_OVERFLOW_P.
* src/emacs-module.c: Include intprops.h.
* src/xdisp.c (percent99): New function.
(decode_mode_spec): Use it to simplify overflow avoidance and
formatting of %p and %P.
Diffstat (limited to 'src/charset.c')
-rw-r--r-- | src/charset.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/charset.c b/src/charset.c index 0c831f13591..cdbfe119515 100644 --- a/src/charset.c +++ b/src/charset.c @@ -435,7 +435,7 @@ read_hex (FILE *fp, bool *eof, bool *overflow) n = 0; while (c_isxdigit (c = getc (fp))) { - if (UINT_MAX >> 4 < n) + if (INT_LEFT_SHIFT_OVERFLOW (n, 4)) *overflow = 1; n = ((n << 4) | (c - ('0' <= c && c <= '9' ? '0' |