[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.
- FACE_FROM_ID vs FACE_OPT_FROM_ID, Eli Zaretskii, 2016/06/23
- Re: FACE_FROM_ID vs FACE_OPT_FROM_ID, Paul Eggert, 2016/06/23
- Re: FACE_FROM_ID vs FACE_OPT_FROM_ID, Eli Zaretskii, 2016/06/24
- Re: FACE_FROM_ID vs FACE_OPT_FROM_ID, Paul Eggert, 2016/06/24
- Re: FACE_FROM_ID vs FACE_OPT_FROM_ID,
Eli Zaretskii <=
- Re: FACE_FROM_ID vs FACE_OPT_FROM_ID, Eli Zaretskii, 2016/06/24
- Re: FACE_FROM_ID vs FACE_OPT_FROM_ID, Paul Eggert, 2016/06/24
- Re: FACE_FROM_ID vs FACE_OPT_FROM_ID, Eli Zaretskii, 2016/06/24
- Re: FACE_FROM_ID vs FACE_OPT_FROM_ID, Paul Eggert, 2016/06/24
- Re: FACE_FROM_ID vs FACE_OPT_FROM_ID, Eli Zaretskii, 2016/06/25
- Re: FACE_FROM_ID vs FACE_OPT_FROM_ID, Paul Eggert, 2016/06/25