public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug fortran/96436] New: -std=f2003 -pedantic rejects valid f0.d edit descriptor
@ 2020-08-03 16:34 guez at lmd dot ens.fr
  2020-08-03 17:22 ` [Bug fortran/96436] " kargl at gcc dot gnu.org
                   ` (3 more replies)
  0 siblings, 4 replies; 5+ messages in thread
From: guez at lmd dot ens.fr @ 2020-08-03 16:34 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96436

            Bug ID: 96436
           Summary: -std=f2003 -pedantic rejects valid f0.d edit
                    descriptor
           Product: gcc
           Version: 10.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: fortran
          Assignee: unassigned at gcc dot gnu.org
          Reporter: guez at lmd dot ens.fr
  Target Milestone: ---

Here is my system information:

$ gcc-10 -v

Using built-in specs.
COLLECT_GCC=gcc-10
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/10/lto-wrapper
OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa:hsa
OFFLOAD_TARGET_DEFAULT=1
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu
10-20200411-0ubuntu1' --with-bugurl=file:///usr/share/doc/gcc-10/README.Bugs
--enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++,m2 --prefix=/usr
--with-gcc-major-version-only --program-suffix=-10
--program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id
--libexecdir=/usr/lib --without-included-gettext --enable-threads=posix
--libdir=/usr/lib --enable-nls --enable-clocale=gnu --enable-libstdcxx-debug
--enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new
--enable-gnu-unique-object --disable-vtable-verify --enable-plugin
--enable-default-pie --with-system-zlib --enable-libphobos-checking=release
--with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch
--disable-werror --with-arch-32=i686 --with-abi=m64
--with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic
--enable-offload-targets=nvptx-none,amdgcn-amdhsa,hsa --without-cuda-driver
--enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu
--target=x86_64-linux-gnu
Thread model: posix
Supported LTO compression algorithms: zlib zstd
gcc version 10.0.1 20200411 (experimental) [master revision
bb87d5cc77d:75961caccb7:f883c46b4877f637e0fa5025b4d6b5c9040ec566] (Ubuntu
10-20200411-0ubuntu1)

Here is a test program for the bug:

$ cat my_test.f90 
  print "(f0.2)", 3.
  end

Here is the compilation command:

$ gfortran-10 -std=f2003 -pedantic my_test.f90 

There is no problem at compilation. Here is the result of execution:

$ a.out
At line 1 of file my_test.f90 (unit = 6, file = 'stdout')
Fortran runtime error: Zero width in format descriptor
(f0.2)
  ^

Error termination. Backtrace:
#0  0x14d29aeffd0a
#1  0x14d29af00819
#2  0x14d29af014ef
#3  0x14d29b133ed1
#4  0x14d29b13410e
#5  0x14d29b1450a7
#6  0x55c1c61a01d7
#7  0x55c1c61a023a
#8  0x14d29ad0f0b2
#9  0x55c1c61a00bd
#10  0xffffffffffffffff

This is a bug. Zero width in edit descriptor Fw.d, on output, is valid. Cf.
Fortran 2003 standard, paragraph 10.6.1.

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [Bug fortran/96436] -std=f2003 -pedantic rejects valid f0.d edit descriptor
  2020-08-03 16:34 [Bug fortran/96436] New: -std=f2003 -pedantic rejects valid f0.d edit descriptor guez at lmd dot ens.fr
@ 2020-08-03 17:22 ` kargl at gcc dot gnu.org
  2020-08-11  8:43 ` markeggleston at gcc dot gnu.org
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 5+ messages in thread
From: kargl at gcc dot gnu.org @ 2020-08-03 17:22 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96436

kargl at gcc dot gnu.org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
           Priority|P3                          |P4
                 CC|                            |kargl at gcc dot gnu.org
     Ever confirmed|0                           |1
   Last reconfirmed|                            |2020-08-03
           Severity|normal                      |minor

--- Comment #1 from kargl at gcc dot gnu.org ---
Index: libgfortran/io/format.c
===================================================================
--- libgfortran/io/format.c     (revision 280157)
+++ libgfortran/io/format.c     (working copy)
@@ -929,7 +929,7 @@ parse_format_list (st_parameter_dt *dtp, bool *seen_dd
       /* Processing for zero width formats.  */
       if (u == FMT_ZERO)
        {
-         if (notification_std (GFC_STD_F2008) == NOTIFICATION_ERROR
+         if (notification_std (GFC_STD_F2003) == NOTIFICATION_ERROR
              || dtp->u.p.mode == READING)
            {
              fmt->error = zero_width;

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [Bug fortran/96436] -std=f2003 -pedantic rejects valid f0.d edit descriptor
  2020-08-03 16:34 [Bug fortran/96436] New: -std=f2003 -pedantic rejects valid f0.d edit descriptor guez at lmd dot ens.fr
  2020-08-03 17:22 ` [Bug fortran/96436] " kargl at gcc dot gnu.org
@ 2020-08-11  8:43 ` markeggleston at gcc dot gnu.org
  2020-08-20  6:41 ` cvs-commit at gcc dot gnu.org
  2020-08-20  7:52 ` markeggleston at gcc dot gnu.org
  3 siblings, 0 replies; 5+ messages in thread
From: markeggleston at gcc dot gnu.org @ 2020-08-11  8:43 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96436

markeggleston at gcc dot gnu.org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Assignee|unassigned at gcc dot gnu.org      |markeggleston at gcc dot gnu.org
                 CC|                            |markeggleston at gcc dot gnu.org

--- Comment #2 from markeggleston at gcc dot gnu.org ---
Not so simple.

Zero width format descriptors are valid:

f - Fortran 95 and later
g - Fortran 2008 and later
d, e, en, es and ex - Fortran 2018

Note: ex is not yet implemented.

There are also related compile time errors:

    5 | print "(d0.2)", 3.
      |         1
Error: Fortran 2018: positive width required at (1)

and corresponding runtime errors:

Fortran runtime error: Positive width required in format
(d0.2)    
  ^

I currently have:

--------------------------- libgfortran/io/format.c ---------------------------
index 3be861fb19c..0959b3d8f84 100644
@@ -617,6 +617,7 @@ parse_format_list (st_parameter_dt *dtp, bool *seen_dd)
   int repeat;
   format_data *fmt = dtp->u.p.fmt;
   bool seen_data_desc = false;
+  int standard;

   head = tail = NULL;

@@ -929,7 +930,14 @@ parse_format_list (st_parameter_dt *dtp, bool *seen_dd)
       /* Processing for zero width formats.  */
       if (u == FMT_ZERO)
        {
-         if (notification_std (GFC_STD_F2008) == NOTIFICATION_ERROR
+          if (t == FMT_F)
+           standard = GFC_STD_F95;
+         else if (t == FMT_G)
+           standard = GFC_STD_F2008;
+         else
+           standard = GFC_STD_F2018;
+
+         if (notification_std (standard) == NOTIFICATION_ERROR
              || dtp->u.p.mode == READING)
            {
              fmt->error = zero_width;

I'm currently working on the test cases, "(d0.2)" indicates there are
additional changes required. I'm now checking e, en and es descriptors.

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [Bug fortran/96436] -std=f2003 -pedantic rejects valid f0.d edit descriptor
  2020-08-03 16:34 [Bug fortran/96436] New: -std=f2003 -pedantic rejects valid f0.d edit descriptor guez at lmd dot ens.fr
  2020-08-03 17:22 ` [Bug fortran/96436] " kargl at gcc dot gnu.org
  2020-08-11  8:43 ` markeggleston at gcc dot gnu.org
@ 2020-08-20  6:41 ` cvs-commit at gcc dot gnu.org
  2020-08-20  7:52 ` markeggleston at gcc dot gnu.org
  3 siblings, 0 replies; 5+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2020-08-20  6:41 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96436

--- Comment #3 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Mark Eggleston
<markeggleston@gcc.gnu.org>:

https://gcc.gnu.org/g:c2a0fd7c8ff426cc40ec678efef85e4a376ea4b5

commit r11-2777-gc2a0fd7c8ff426cc40ec678efef85e4a376ea4b5
Author: Mark Eggleston <markeggleston@gcc.gnu.org>
Date:   Tue Aug 4 14:10:08 2020 +0100

    Fortran  : rejected f0.d edit descriptor PR96436

    Zero length f format descriptors are valid for Fortran 95 and
    later.  For g format descriptors from Fortran 2008 and later.
    Finally for D, E, EN and ES for Fortran 2018 and later.

    2020-08-20  Mark Eggleston  <markeggleston@gcc.gnu.org>

    libgfortran/

            PR fortran/96436
            * io/format.c (parse_format_list):  Add new local variable
            "standard" to hold the required standard to check. If the
            format width is zero select standard depending on descriptor.
            Call notification_std using the new standard variable.

    2020-08-20  Mark Eggleston  <markeggleston@gcc.gnu.org>

    gcc/testsuite/

            PR fortran/96436
            * gfortran.dg/pr96436_1.f90: New test.
            * gfortran.dg/pr96436_2.f90: New test.
            * gfortran.dg/pr96436_3.f90: New test.
            * gfortran.dg/pr96436_4.f90: New test.
            * gfortran.dg/pr96436_5.f90: New test.
            * gfortran.dg/pr96436_6.f90: New test.
            * gfortran.dg/pr96436_7.f90: New test.
            * gfortran.dg/pr96436_8.f90: New test.
            * gfortran.dg/pr96436_9.f90
            * gfortran.dg/pr96436_10.f90

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [Bug fortran/96436] -std=f2003 -pedantic rejects valid f0.d edit descriptor
  2020-08-03 16:34 [Bug fortran/96436] New: -std=f2003 -pedantic rejects valid f0.d edit descriptor guez at lmd dot ens.fr
                   ` (2 preceding siblings ...)
  2020-08-20  6:41 ` cvs-commit at gcc dot gnu.org
@ 2020-08-20  7:52 ` markeggleston at gcc dot gnu.org
  3 siblings, 0 replies; 5+ messages in thread
From: markeggleston at gcc dot gnu.org @ 2020-08-20  7:52 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96436

markeggleston at gcc dot gnu.org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
         Resolution|---                         |FIXED
             Status|NEW                         |RESOLVED

--- Comment #4 from markeggleston at gcc dot gnu.org ---
Committed to master.

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2020-08-20  7:52 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-08-03 16:34 [Bug fortran/96436] New: -std=f2003 -pedantic rejects valid f0.d edit descriptor guez at lmd dot ens.fr
2020-08-03 17:22 ` [Bug fortran/96436] " kargl at gcc dot gnu.org
2020-08-11  8:43 ` markeggleston at gcc dot gnu.org
2020-08-20  6:41 ` cvs-commit at gcc dot gnu.org
2020-08-20  7:52 ` markeggleston at gcc dot gnu.org

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).