• Paul Eggert's avatar
    Pacify GCC 9.2.1 20190927 -O3 · dc3006cf
    Paul Eggert authored
    Original problem report by N. Jackson in:
    https://lists.gnu.org/r/emacs-devel/2020-03/msg00047.html
    I found some other warnings when I used gcc, and fixed them
    with this patch.
    * lib-src/etags.c: Include verify.h.
    (xnmalloc, xnrealloc): Tell the compiler that NITEMS is
    nononnegative and ITEM_SIZE is positive.
    * src/conf_post.h (__has_attribute_returns_nonnull)
    (ATTRIBUTE_RETURNS_NONNULL): New macros.
    * src/editfns.c (Fuser_full_name): Don’t assume Fuser_login_name
    returns non-nil.
    * src/intervals.c (rotate_right, rotate_left, update_interval):
    * src/intervals.h (LENGTH, LEFT_TOTAL_LENGTH, RIGHT_TOTAL_LENGTH):
    Use TOTAL_LENGTH0 or equivalent on intervals that might be null.
    * src/intervals.h (TOTAL_LENGTH): Assume arg is nonnull.
    (TOTAL_LENGTH0): New macro, with the old TOTAL_LENGTH meaning.
    (make_interval, split_interval_right): Add ATTRIBUTE_RETURNS_NONNULL.
    * src/pdumper.c (dump_check_dump_off): Now returns void, since
    no caller uses the return value.  Redo assert to pacify GCC.
    (decode_emacs_reloc): Add a seemingly-random eassume to pacify GCC.
    Ugly, and I suspect due to a bug in GCC.
    dc3006cf
etags.c 188 KB