aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran
diff options
context:
space:
mode:
authorTobias Schlüter <tobias.schlueter@physik.uni-muenchen.de>2004-05-15 01:11:46 +0200
committerTobias Schlüter <tobi@gcc.gnu.org>2004-05-15 01:11:46 +0200
commitfb89e8bd0619dc59d72cc2d4bf7a8b17c699564a (patch)
tree07f4d948652ad0761050ec6b514959c31661dfb7 /gcc/fortran
parentcb44ab824bd0902002bbf1caa66c05b56829630c (diff)
downloadgcc-fb89e8bd0619dc59d72cc2d4bf7a8b17c699564a.zip
gcc-fb89e8bd0619dc59d72cc2d4bf7a8b17c699564a.tar.gz
gcc-fb89e8bd0619dc59d72cc2d4bf7a8b17c699564a.tar.bz2
dump-parse-tree.c (gfc_show_array_ref): Print colon only for ranges when dumping array references.
* dump-parse-tree.c (gfc_show_array_ref): Print colon only for ranges when dumping array references. From-SVN: r81866
Diffstat (limited to 'gcc/fortran')
-rw-r--r--gcc/fortran/ChangeLog5
-rw-r--r--gcc/fortran/dump-parse-tree.c24
2 files changed, 22 insertions, 7 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index 19a66ce..312afb3 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -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.
diff --git a/gcc/fortran/dump-parse-tree.c b/gcc/fortran/dump-parse-tree.c
index 31fdf0b..5f1db22 100644
--- a/gcc/fortran/dump-parse-tree.c
+++ b/gcc/fortran/dump-parse-tree.c
@@ -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)