The following code is legal F2003 but I believe it's not legal F95. It should be diagnosed as such. $ cat a.f90 real,parameter :: foo = 1.7 complex,parameter :: bar = (foo, foo) end
I'll do it.
Index: gcc/fortran/primary.c =================================================================== --- gcc/fortran/primary.c (revision 116798) +++ gcc/fortran/primary.c (working copy) @@ -1084,6 +1084,10 @@ return MATCH_ERROR; } + if (gfc_notify_std (GFC_STD_F2003, "Fortran 2003: PARAMETER symbol in " + "complex constant at %C") == FAILURE) + return MATCH_ERROR; + switch (sym->value->ts.type) { case BT_REAL:
Subject: Bug 29210 Author: fxcoudert Date: Mon Oct 2 09:21:45 2006 New Revision: 117368 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=117368 Log: PR fortran/29210 * primary.c (match_sym_complex_part): Named constants as real or imaginary part of complex a named constant are only allowed in Fortran 2003. * gfortran.dg/complex_parameter_1.f90: New test. Added: trunk/gcc/testsuite/gfortran.dg/complex_parameter_1.f90 Modified: trunk/gcc/fortran/ChangeLog trunk/gcc/fortran/primary.c trunk/gcc/testsuite/ChangeLog
Not worth a backport. Closing as fixed.