}
/* Extract A's pointer value, assuming A's Lisp type is TYPE and the
- extracted pointer's type is CTYPE *.
- Note that the second term vanishes if EMACS_INT is wider than pointers
- and the tag is in the upper bits (ie, USE_LSB_TAG=0); this makes
- untagging slightly cheaper in that case. */
+ extracted pointer's type is CTYPE *. When !USE_LSB_TAG this simply
+ extracts A's low-order bits, as (uintptr_t) LISP_WORD_TAG (type) is
+ always zero then. */
#define XUNTAG(a, type, ctype) \
((ctype *) ((uintptr_t) XLP (a) - (uintptr_t) LISP_WORD_TAG (type)))