dump-parse-tree.c (gfc_show_array_ref): Print colon only for ranges when dumping...
authorTobias Schlüter <tobias.schlueter@physik.uni-muenchen.de>
Fri, 14 May 2004 23:11:46 +0000 (01:11 +0200)
committerTobias Schlüter <tobi@gcc.gnu.org>
Fri, 14 May 2004 23:11:46 +0000 (01:11 +0200)
* dump-parse-tree.c (gfc_show_array_ref): Print colon only
for ranges when dumping array references.

From-SVN: r81866

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

index 19a66ce588a7d78eaa9d624b23df8d4bd93e68a8..312afb34e7252c7299a52db8fe2e5b3f11e8246a 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 31fdf0ba1213a11ec3d07d1ffbda7fac33e48b25..5f1db22689bdc573393ada10f08199d579d115a9 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)