Re: [patch] PR93727 Fortran 2018: EX edit descriptor

Jerry D <[email protected]>
Newsgroups gmane.comp.gcc.patches,gmane.comp.gcc.fortran
Message-ID <[email protected]>
On 2/1/26 12:44 PM, Harald Anlauf wrote:
> Hi Jerry,
> 
> thanks for your draft patch!
> 
> I don't mind implementing it step by step, but it does not
> work here as I think it should (based on two other compilers).
> 
> Let's look at the testcases first:
> 
> - real(10) should be restricted to platforms where this is
>    available; it will be rejected on several others

I found one compiler that did not support real(10) even though the hardware has 
it and it did support real(16). Some don't do either. I am certain we need to 
set target in the test cases

> 
> - EXformat_1.f90
> 
>    r4 = -huge(1.0_4/3.0_4)
> 
> this is identical to
> 
>    r4 = -huge(1.0_4)

Yes, I will tweak that.
> 
> and should print as:
> 
> -0XF.FFFFFP+124
> 
> and not
> 
> -0X1.P+127
> 

hmm, I Added an = sign in a conditional looking at something else and forgot
to take it back out.

   /* Handle the 'd' parameter - adjust mantissa precision if specified */
   if (d > 0)      <---------- I had >=, my bad.
     {


This gives:

123456789012345678901234567890
-0X1.FFFFFEP+127<
-0X1.FFFFFFFFFFFFFP+1023<
-0XF.FFFFFFFFFFFFFFFP+16380<

Notice how this implementation normalizes differently then others.

> etc.
> 
> Similarly for EXformat_2.f90, the first write should be
> 
>   >          -0X9.D14707B63DFBP+3<
> 
> and not
> 
>   >                      -0X1.P+6<

Likwise, thanks for seeing these.

> 
> I would also recommend to extend the string length s1 so that
> other brands do not complain about it being to short:
> 
>    character(kind=1, len=16) :: s1
> 

Easy to do.

> I also get a warning at compilation of io.cc:
> 
> ../../gcc-trunk/gcc/fortran/io.cc: In function 'format_token format_lex()':
> ../../gcc-trunk/gcc/fortran/io.cc:449:11: warning: this statement may fall 
> through [-Wimplicit-fallthrough=]
>    449 |           switch (c)
>        |           ^~~~~~
> ../../gcc-trunk/gcc/fortran/io.cc:464:9: note: here
>    464 |         case 'Z':
>        |         ^~~~
> 
> Can you check the logic?


Yes, I did not see it fly by, but will check.

> 
> I stopped the review here.
> 
> Finally a few general comments: please try to stick to the
> 80 columns/line recommendation for commit messages as well
> as for code.

Agree, I can adjust.

> 
> Best,
> Harald
> --- snip ---

Thanks for the review.  I will fix these and resubmit.

Jerry
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.