This is the mail archive of the
mailing list for the GCC project.
Re: wide-int, fortran
- From: Steven Bosscher <stevenb dot gcc at gmail dot com>
- To: "N.M. Maclaren" <nmm1 at cam dot ac dot uk>
- Cc: Kenneth Zadeck <zadeck at naturalbridge dot com>, Andrew Pinski <pinskia at gmail dot com>, Steve Kargl <sgk at troutmask dot apl dot washington dot edu>, Mike Stump <mikestump at comcast dot net>, "gcc-patches at gcc dot gnu dot org Patches" <gcc-patches at gcc dot gnu dot org>, gfortran List <fortran at gcc dot gnu dot org>
- Date: Sun, 24 Nov 2013 16:43:36 +0100
- Subject: Re: wide-int, fortran
- Authentication-results: sourceware.org; auth=none
- References: <DDF8569C-14AF-4E64-AA91-0EA50A49E043 at comcast dot net> <20131123201618 dot GA31525 at troutmask dot apl dot washington dot edu> <CA+=Sn1nS7QG6MyZjjAO4yR5LhfUWRE3H=CwrKnKZC_QmK459Hw at mail dot gmail dot com> <Prayer dot 1 dot 3 dot 5 dot 1311241016280 dot 23162 at hermes-2 dot csi dot cam dot ac dot uk> <5291F5B6 dot 8070503 at naturalbridge dot com> <Prayer dot 1 dot 3 dot 5 dot 1311241338000 dot 23892 at hermes-2 dot csi dot cam dot ac dot uk>
On Sun, Nov 24, 2013 at 2:38 PM, N.M. Maclaren wrote:
> The main problem is that integer constant expressions in C are limited to
> the built-in operators, of which the only tricky ones are division and
> remainder (and, occasionally, multiplication) - see C11 6.6#3. Fortran
> is not so limited, and there are much wider requirements for expression
> evaluation at compile time.
In gfortran there's been effectively no limit on the size of integers
since the beginning, because all integers are represented as mpz (i.e.
GMP integers) values. In fact, I'm a bit surprised that the wide_int
stuff isn't also based on GMP's integer representation, but oh well...
Point is, this wide_int stuff is for the interface between gfortran as
a front end on one side, and the rest of gcc (middle end) on the
other. At the hand-over point, gfortran will already have handled more
complex integer constant expressions as much as possible.