emacs-devel
[Top][All Lists]
Advanced

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

Re: FACE_FROM_ID vs FACE_OPT_FROM_ID


From: Eli Zaretskii
Subject: Re: FACE_FROM_ID vs FACE_OPT_FROM_ID
Date: Fri, 24 Jun 2016 12:57:56 +0300

> Cc: address@hidden
> From: Paul Eggert <address@hidden>
> Date: Fri, 24 Jun 2016 11:27:26 +0200
> 
> > eassert (face); if (!face) { ...}
> 
> eassert (X) means that X must be nonzero, so there should never be a 
> need for a runtime check !X after a call to eassert (X).

Maybe I'm missing something, but my reading of this:

#ifndef ENABLE_CHECKING
# define eassert(cond) ((void) (false && (cond))) /* Check COND compiles.  */
# define eassume(cond) assume (cond)
#else /* ENABLE_CHECKING */

extern _Noreturn void die (const char *, const char *, int);

extern bool suppress_checking EXTERNALLY_VISIBLE;

# define eassert(cond)                                          \
   (suppress_checking || (cond)                                 \
    ? (void) 0                                                  \
    : die (# cond, __FILE__, __LINE__))

is that when ENABLE_CHECKING is not defined and suppress_checking is
true, eassert does nothing.



reply via email to

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