diff options
author | Tobias Schlüter <tobias.schlueter@physik.uni-muenchen.de> | 2004-05-15 01:11:46 +0200 |
---|---|---|
committer | Tobias Schlüter <tobi@gcc.gnu.org> | 2004-05-15 01:11:46 +0200 |
commit | fb89e8bd0619dc59d72cc2d4bf7a8b17c699564a (patch) | |
tree | 07f4d948652ad0761050ec6b514959c31661dfb7 /gcc/fortran | |
parent | cb44ab824bd0902002bbf1caa66c05b56829630c (diff) | |
download | gcc-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/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/fortran/dump-parse-tree.c | 24 |
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) |