------- Comment #3 from dfranke at gcc dot gnu dot org  2010-05-09 20:02 -------
Experimental patch below gives:

$ gfortran-svn -Wall -W pr35779.f90 
pr35779.f90:3.44:

  integer, PARAMETER :: I2(10) = (/ (J1, J1=its_bad, 1, -1) /)
                                            1
Error: Parameter 'its_bad' at (1) has not been declared or is a variable, which
does not reduce to a constant expression


Some cleanup and regtesting is needed, though.



Index: array.c
===================================================================
--- array.c     (revision 159195)
+++ array.c     (working copy)
@@ -847,7 +847,7 @@ check_duplicate_iterator (gfc_constructo
 static match match_array_cons_element (gfc_constructor_base *);

 /* Match a list of array elements.  */
-
+extern bool init_flag;
 static match
 match_array_list (gfc_constructor_base *result)
 {
@@ -879,7 +879,7 @@ match_array_list (gfc_constructor_base *

   for (n = 1;; n++)
     {
-      m = gfc_match_iterator (&iter, 0);
+      m = gfc_match_iterator (&iter, init_flag);
       if (m == MATCH_YES)
        break;
       if (m == MATCH_ERROR)


-- 

dfranke at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |dfranke at gcc dot gnu dot
                   |                            |org
         AssignedTo|unassigned at gcc dot gnu   |dfranke at gcc dot gnu dot
                   |dot org                     |org
             Status|NEW                         |ASSIGNED
   Last reconfirmed|2008-03-31 19:56:29         |2010-05-09 20:02:58
               date|                            |


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35779

Reply via email to