aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran/dump-parse-tree.c
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/dump-parse-tree.c
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/dump-parse-tree.c')
-rw-r--r--gcc/fortran/dump-parse-tree.c24
1 files changed, 17 insertions, 7 deletions
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)