OSDN Git Service

* dump-parse-tree.c (gfc_show_array_ref): Print colon only
authortobi <tobi@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 14 May 2004 23:11:46 +0000 (23:11 +0000)
committertobi <tobi@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 14 May 2004 23:11:46 +0000 (23:11 +0000)
for ranges when dumping array references.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@81866 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/fortran/ChangeLog
gcc/fortran/dump-parse-tree.c

index 19a66ce..312afb3 100644 (file)
@@ -1,3 +1,8 @@
+2004-05-14  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
+
+       * dump-parse-tree.c (gfc_show_array_ref): Print colon only
+       for ranges when dumping array references.
+
 2004-05-14  Victor Leikehman  <lei@haifasphere.co.il>
 
        * decl.c (variable_decl): Always apply default initializer.
index 31fdf0b..5f1db22 100644 (file)
@@ -183,18 +183,28 @@ gfc_show_array_ref (gfc_array_ref * ar)
     case AR_SECTION:
       for (i = 0; i < ar->dimen; i++)
        {
+         /* There are two types of array sections: either the
+            elements are identified by an integer array ('vector'),
+            or by an index range. In the former case we only have to
+            print the start expression which contains the vector, in
+            the latter case we have to print any of lower and upper
+            bound and the stride, if they're present.  */
+  
          if (ar->start[i] != NULL)
            gfc_show_expr (ar->start[i]);
 
-         gfc_status_char (':');
-
-         if (ar->end[i] != NULL)
-           gfc_show_expr (ar->end[i]);
-
-         if (ar->stride[i] != NULL)
+         if (ar->dimen_type[i] == DIMEN_RANGE)
            {
              gfc_status_char (':');
-             gfc_show_expr (ar->stride[i]);
+
+             if (ar->end[i] != NULL)
+               gfc_show_expr (ar->end[i]);
+
+             if (ar->stride[i] != NULL)
+               {
+                 gfc_status_char (':');
+                 gfc_show_expr (ar->stride[i]);
+               }
            }
 
          if (i != ar->dimen - 1)