Subject: Re: bug#63556: 29.0.90; Use of _Generic breaks Emacs build on GCC <4.9

From: Po Lu <[email-masked]>
Date: Fri, 19 May 2023 11:18:28 +0800

Paul Eggert <[email-masked]> writes:

> On 5/18/23 17:46, Po Lu wrote:
>
>> How does intprops.h work on such systems?
>
> It relies on _Generic. (Those systems use neither GCC nor Clang.)

What about in C99 hosts?

> Fair enough, although I see more than just one other use: EMACS_INT
> (32-bit platforms configured --with-wide-int), color_distance,

`color_distance' is the first use I was referring to.  And, so far,
`--with-wide-int' is optional.

> time_from_jiffies (in Linux), system_process_attributes (in Linux).

These seem to be system-specific.

> Currently there's a 'verify (PTRDIFF_MAX <= ULLONG_MAX);' protecting
> the use of elogb in lisp.h. Would it help to add a 'verify (max
> (-MOST_NEGATIVE_FIXNUM, MOST_POSITIVE_FIXNUM) <= ULLONG_MAX);' to
> protect its use in floatfns.c?

Sure.  But it would make me feel a lot better if we could get away
without using `long long' at all on 32-bit systems.