[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Fkill_emacs NO_RETURN

From: Eli Zaretskii
Subject: Fkill_emacs NO_RETURN
Date: Sun, 09 Apr 2006 21:40:10 +0300

This change:

    2006-04-09  Dan Nicolaescu  <address@hidden>

            * puresize.h (pure_write_error): Mark as NO_RETURN.

            * lisp.h (args_out_of_range, args_out_of_range_3)
            (Fkill_emacs): Likewise.

marks Fkill_emacs as __attribute__((no_return)) for those versions of
GCC which support that.  I think this change is for the worse: now GCC
whines that a function that is marked no-return returns a value.  This
is because Fkill_emacs has this at its end:

      exit (INTEGERP (arg) ? XINT (arg) : EXIT_SUCCESS);
      /* NOTREACHED */
      return Qnil;

The ``NOTREACHED return'' is there because DEFUN declares a function
that returns a Lisp_Object, and some compilers will complain if
there's no return statement in such a function.

So either we find a clean way to condition `return Qnil' on NO_RETURN
being defined to nothing, or we should revert this change.  (Why was
it made, anyway?)

reply via email to

[Prev in Thread] Current Thread [Next in Thread]