Preprocessor arithmetic

To: gcc at gcc dot gnu dot org

Subject: Preprocessor arithmetic

From: Neil Booth <neilb at earthling dot net>

Date: Mon, 13 Nov 2000 23:41:00 +0000

Cc: Zack Weinberg <zackw at Stanford dot EDU>

Can someone explain to me what is wrong with CPP's arithmetic (as
referred to on the web page)?
All arithmetic in CPP is done in HOST_WIDEST_INT. My understanding is
that this is the widest integer that GCC can support on the host;
which is usually twice the processor's native widest integer (itself
being HOST_WIDE_INT).
If I don't have it right so far, please correct me.
The standard defines intmax_t and uintmax_t as the "greatest width
integer types"; capable of representing any value of any (un)signed
type. Preprocessor arithmetic should be done in these types.
These types seem to be the same thing to me. What am I missing?
Neil.