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