diff options
| author | Paul Eggert | 2011-04-10 09:44:27 -0700 |
|---|---|---|
| committer | Paul Eggert | 2011-04-10 09:44:27 -0700 |
| commit | b2ded58d7e0eb75f00071036d1c07bbd55313b60 (patch) | |
| tree | 5546bb6d7214033a83d13ce87a15f65595f6ae74 /src/ChangeLog | |
| parent | 37f1c9309eb0e6b3bc3dda1ffa7f99410c22355d (diff) | |
| parent | 12020a9e6dcfc2213e8bbb0fec259c1ed1202f30 (diff) | |
| download | emacs-b2ded58d7e0eb75f00071036d1c07bbd55313b60.tar.gz emacs-b2ded58d7e0eb75f00071036d1c07bbd55313b60.zip | |
Fix more problems found by GCC 4.6.0's static checks.
Diffstat (limited to 'src/ChangeLog')
| -rw-r--r-- | src/ChangeLog | 83 |
1 files changed, 83 insertions, 0 deletions
diff --git a/src/ChangeLog b/src/ChangeLog index 3eaf1e326b5..6d300875518 100644 --- a/src/ChangeLog +++ b/src/ChangeLog | |||
| @@ -1,3 +1,86 @@ | |||
| 1 | 2011-04-10 Paul Eggert <eggert@cs.ucla.edu> | ||
| 2 | |||
| 3 | Fix more problems found by GCC 4.6.0's static checks. | ||
| 4 | |||
| 5 | * xdisp.c (vmessage): Use a better test for character truncation. | ||
| 6 | |||
| 7 | * charset.c (load_charset_map): <, not <=, for optimization, | ||
| 8 | and to avoid potential problems with integer overflow. | ||
| 9 | * chartab.c (sub_char_table_set_range, char_table_set_range): Likewise. | ||
| 10 | * casetab.c (set_identity, shuffle): Likewise. | ||
| 11 | * editfns.c (Fformat): Likewise. | ||
| 12 | * syntax.c (skip_chars): Likewise. | ||
| 13 | |||
| 14 | * xmenu.c (set_frame_menubar): Allocate smaller local vectors. | ||
| 15 | This also lets GCC 4.6.0 generate slightly better loop code. | ||
| 16 | |||
| 17 | * callint.c (Fcall_interactively): <, not <=, for optimization. | ||
| 18 | (Fcall_interactively): Count the number of arguments produced, | ||
| 19 | not the number of arguments given. This is simpler and lets GCC | ||
| 20 | 4.6.0 generate slightly better code. | ||
| 21 | |||
| 22 | * ftfont.c: Distingish more carefully between FcChar8 and char. | ||
| 23 | The previous code passed unsigned char * to a functions like | ||
| 24 | strlen and xstrcasecmp that expect char *, which does not | ||
| 25 | conform to the C standard. | ||
| 26 | (get_adstyle_property, ftfont_pattern_entity): Use FcChar8 for | ||
| 27 | arguments to FcPatternGetString, and explicitly cast FcChar8 * to | ||
| 28 | char * when the C standard requires it. | ||
| 29 | |||
| 30 | * keyboard.c (read_char): Remove unused var. | ||
| 31 | |||
| 32 | * eval.c: Port to Windows vsnprintf (Bug#8435). | ||
| 33 | Include <limits.h>. | ||
| 34 | (SIZE_MAX): Define if the headers do not. | ||
| 35 | (verror): Do not give up if vsnprintf returns a negative count. | ||
| 36 | Instead, grow the buffer. This ports to Windows vsnprintf, which | ||
| 37 | does not conform to C99. Problem reported by Eli Zaretskii. | ||
| 38 | Also, simplify the allocation scheme, by avoiding the need for | ||
| 39 | calling realloc, and removing the ALLOCATED variable. | ||
| 40 | |||
| 41 | * eval.c (verror): Initial buffer size is 4000 (not 200) bytes. | ||
| 42 | |||
| 43 | Remove invocations of doprnt, as Emacs now uses vsnprintf. | ||
| 44 | But keep the doprint source code for now, as we might revamp it | ||
| 45 | and use it again (Bug#8435). | ||
| 46 | * lisp.h (doprnt): Remove. | ||
| 47 | * Makefile.in (base_obj): Remove doprnt.o. | ||
| 48 | * deps.mk (doprnt.o): Remove. | ||
| 49 | |||
| 50 | error: Print 32- and 64-bit integers portably (Bug#8435). | ||
| 51 | Without this change, on typical 64-bit hosts error ("...%d...", N) | ||
| 52 | was used to print both 32- and 64-bit integers N, which relied on | ||
| 53 | undefined behavior. | ||
| 54 | * lisp.h, src/m/amdx86-64.h, src/m/ia64.h, src/m/ibms390x.h (pEd): | ||
| 55 | New macro. | ||
| 56 | * lisp.h (error, verror): Mark as printf-like functions. | ||
| 57 | * eval.c (verror): Use vsnprintf, not doprnt, to do the real work. | ||
| 58 | Report overflow in size calculations when allocating printf buffer. | ||
| 59 | Do not truncate output string at its first null byte. | ||
| 60 | * xdisp.c (vmessage): Use vsnprintf, not doprnt, to do the real work. | ||
| 61 | Truncate the output at a character boundary, since vsnprintf does not | ||
| 62 | do that. | ||
| 63 | * charset.c (check_iso_charset_parameter): Convert internal | ||
| 64 | character to string before calling 'error', since %c now has the | ||
| 65 | printf meaning. | ||
| 66 | * coding.c (Fdecode_sjis_char, Fdecode_big5_char): Avoid int | ||
| 67 | overflow when computing char to be passed to 'error'. Do not | ||
| 68 | pass Lisp_Object to 'error'; pass the integer instead. | ||
| 69 | * nsfns.m (Fns_do_applescript): Use int, not long, since it's | ||
| 70 | formatted with plain %d. | ||
| 71 | |||
| 72 | * eval.c (internal_lisp_condition_case): Don't pass spurious arg. | ||
| 73 | |||
| 74 | * keyboard.c (access_keymap_keyremap): Print func name, not garbage. | ||
| 75 | |||
| 76 | * coding.c (Fdecode_sjis_char): Don't assume CODE fits in int. | ||
| 77 | |||
| 78 | * xterm.c (x_catch_errors): Remove duplicate declaration. | ||
| 79 | |||
| 80 | * term.c (maybe_fatal): Mark its 3rd arg as a printf format, too. | ||
| 81 | |||
| 82 | * xdisp.c, lisp.h (message_nolog): Remove; unused. | ||
| 83 | |||
| 1 | 2011-04-10 Jim Meyering <meyering@redhat.com> | 84 | 2011-04-10 Jim Meyering <meyering@redhat.com> |
| 2 | 85 | ||
| 3 | use ssize_t and size_t for read- and write-like emacs_gnutls_* functions | 86 | use ssize_t and size_t for read- and write-like emacs_gnutls_* functions |