This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [gfortran] Support for [...] style array constructors


I've been told that my copyright assignment has been processed, so
here comes the updated patch I promised.

Den 23.04 kl 22:36:19 skrev eedelman@acclab.helsinki.fi:
> Den 23.04 kl 11:17:26 skrev tobias.schlueter@physik.uni-muenchen.de:
> > Erik Edelmann wrote:
> > > After looking at a bunch of other test cases, and some trial and
> > > error, I've come up with the test cases below.
> > > br_array_constr_1.f90 adds 32 new "# of expected passes", and
> > > br_array_constr_2.f90 adds 3.  If someone with better knowledge
> > > than me on how this testsuite system is expected to work would
> > > take the time and look at my test cases and either confirm that
> > > they are OK, or tell me what's wrong with them, I would be most
> > > grateful.
> > 
> > Yes they look right.  The { dg-warning } line should probably match "array
> > constructor" instead of "New in Fortran 2003:", 
> 
> Ok.

Fixed.

> > because I don't like that
> > wording too much ("... are an extension to Fortran 95"?  Hm, not too good
> > either), 
> 
> No, I wasn't completely satisfied with the wording either.  I'll
> think about it some more.  Suggestions wellcome.

Well, I haven't found anything better (but I'll have to admit
that I have not thought about this issue _very_ much). But the
current error message still conveys what I feel is important: the
feature is not F95 (or earlier) standard, but it _is_ F2003
standard (and thus different from other extensions).

Reg. tested on mainline.

Please commit if OK.


        Erik


(test cases as attachments)

2005-05-12 Erik Edelmann <erik.edelmann@iki.fi>

      * gfortran.dg/br_array_constr_1.f90: New test.
      * gfortran.dg/br_array_constr_2.f90: New test.


2005-05-12 Erik Edelmann <erik.edelmann@iki.fi>

        * array.c (gfc_match_array_constructor): Support [ ... ]
          style array constructors.


Index: gcc/fortran/array.c
===================================================================
RCS file: /cvsroot/gcc/gcc/gcc/fortran/array.c,v
retrieving revision 1.14
diff -u -p -r1.14 array.c
--- gcc/fortran/array.c	5 Apr 2005 08:54:30 -0000	1.14
+++ gcc/fortran/array.c	11 May 2005 19:50:37 -0000
@@ -866,14 +866,27 @@ gfc_match_array_constructor (gfc_expr **
   gfc_expr *expr;
   locus where;
   match m;
+  const char *end_delim;
 
   if (gfc_match (" (/") == MATCH_NO)
-    return MATCH_NO;
+    {
+      if (gfc_match (" [") == MATCH_NO)
+        return MATCH_NO;
+      else
+        {
+          if (gfc_notify_std (GFC_STD_F2003, "New in Fortran 2003: [...] "
+                              "style array constructors at %C") == FAILURE)
+            return MATCH_ERROR;
+          end_delim = " ]";
+        }
+    }
+  else
+    end_delim = " /)";
 
   where = gfc_current_locus;
   head = tail = NULL;
 
-  if (gfc_match (" /)") == MATCH_YES)
+  if (gfc_match (end_delim) == MATCH_YES)
     goto empty;			/* Special case */
 
   for (;;)
@@ -895,7 +908,7 @@ gfc_match_array_constructor (gfc_expr **
 	break;
     }
 
-  if (gfc_match (" /)") == MATCH_NO)
+  if (gfc_match (end_delim) == MATCH_NO)
     goto syntax;
 
 empty:

Attachment: br_array_constr_1.f90
Description: Text document

Attachment: br_array_constr_2.f90
Description: Text document


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]