This is the mail archive of the
mailing list for the GCC project.
Re: [PATCH,Fortran] -- Tidy up the BOZ rewrite
On Sat, Aug 10, 2019 at 10:54:30AM -0700, Steve Kargl wrote:
> On Sat, Aug 10, 2019 at 07:29:10PM +0200, Thomas Koenig wrote:
> > Hi Steve,
> > > OK to commit?
> > OK with
> > %s/rational/relational/g
> > and with Mark's nit.
> > Thanks a lot for going down that road. I like the approach of
> > -fallow-invalid-boz to downgrade the error to a warning, which
> > then cannot be turned off.
> Thanks, I'll double check spelling. Not one of my stronger abilitie.
> You can turn off the warning with -w, but that turns off
> all warnings. :-) I suspect we'll get a PR or two to
> provide an option to turn off the warning.
> I think part of the rework that others will appreciate is
> one no longer needs to use -fno-range-check.
One item I forgot to discuss in the original email was the change
in intrinsic.c to split generic "real" into individual generics.
Originally, intrinsic.c grouped real, float, dfloat, sngl, realpart
and if -fdec is present float[ijk] under the generic "real".
real is specified to have 2 arguments where the second one is
optional. All other intrinsic names take a single argument. If
on wrote "real(1.2324, 4)", then gfc_check_real() is called to do
check the arguments. This is good. However, if one wrote
"real(1.234)", then gfc_check_float() is call. The Fortran standard
specifies the float takes a default integer as an argument, and I
while real can a numeric type. By splitting each intrinsic into
its own generic, gfc_check_real is now called for "real(1.234)"
as good thing!