Proposal: shoot vint64 through the head

Eric S. Raymond esr at snark.thyrsus.com
Tue Dec 1 13:18:48 UTC 2015


Today I learned that in C99, "long long" is guaranteed to be at least
64 bits.  POSIX does not guarantee that a 64-bit integral type exists,
only that it is available as int64_t/uint64_t if the platform supports it.

It follows that the combination of C99 and POSIX that we've chosen as
out porting baseline requires int64_t/uint64_t to exist.

There is some fairly nasty code in NTP's calendaring library to work
around the absence of a true 64-bit integral type.  Is it time to rip
that code out?

Or, to put it differently, can anyone think of a compiler/platform
combination we care about that is 32-bit-only?

Data points: GCC and clang both conform to C99 and have 64-bit long long,
whatever the underlying hardware platform.

The ARM ABI requires that "long long" be 64 bits even though the
underlying hardware word length is 32.
-- 
		<a href="http://www.catb.org/~esr/">Eric S. Raymond</a>

The right of the citizens to keep and bear arms has justly been considered as
the palladium of the liberties of a republic; since it offers a strong moral
check against usurpation and arbitrary power of rulers; and will generally,
even if these are successful in the first instance, enable the people to resist
and triumph over them."
        -- Supreme Court Justice Joseph Story of the John Marshall Court


More information about the devel mailing list