This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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.
> 

Committed.

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!

-- 
Steve


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]