Subject: Re: gcc-ansi -pedantic and long long on NetBSD
To: Alan Barrett <barrett@daisy.ee.und.ac.za>
From: Chris G. Demetriou <cgd@alpha.bostic.com>
List: current-users
Date: 10/30/1994 15:09:48
> > > 1. Fix gcc so the -pedantic doesn't choke on long long anymore (I
> > > suppose that some ANSI version of C will support 64bit ints)
> >
> > This is probably the solution. it's unclear that ANSI will support
> > 64bit ints in any reasonable fashion, though.
>
> ANSI C supports signed and unsigned flavours of char, short, int and long.
> ANSI C does not support "long long", and gcc -ansi -pedantic is right to
> warn about it.
>
> ANSI C requires chars to be at least 8 bits, shorts to be at least 16
> bits, ints to be at least 16 bits, and longs to be at least 32 bits. It
> permits these types to be larger than the minimum sizes. (Actually,
> ANSI/ISO 9899-1990 defines the minimum requirements in terms of ranges of
> representable values, rather than in terms of numbers of bits.)
i'm aware of all of these things.
> Apart from a possible desire to support broken code that assumes ints and
> longs are each 32 bits, I see no reason why a C implementation that
> desires to support 64-bit integers should not use 64-bit longs and 32-bit
> ints.
And i'm aware of, and agree with this.
HOWEVER, the problem is that ANSI C give you no way of specifying
explicit-length data types.
file offsets are 64 bits. how do you specify that (using an integral
type) in ANSI C, without forcing 'long' to be 64 bits on 32-bit
machines?
chris