aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran/resolve.c
diff options
context:
space:
mode:
authorTobias Burnus <burnus@net-b.de>2018-10-09 20:03:31 +0200
committerTobias Burnus <burnus@gcc.gnu.org>2018-10-09 20:03:31 +0200
commitaf2d2d135a3374fb8cbd04f027683b0cbb868d88 (patch)
tree0d24ebdd84ab190810b5ef1a5f53e72b5d9a8fd9 /gcc/fortran/resolve.c
parent6fd8679fceaed5e2ef131eafe806a6c2cd92395c (diff)
downloadgcc-af2d2d135a3374fb8cbd04f027683b0cbb868d88.zip
gcc-af2d2d135a3374fb8cbd04f027683b0cbb868d88.tar.gz
gcc-af2d2d135a3374fb8cbd04f027683b0cbb868d88.tar.bz2
re PR fortran/83522 (ICE on allocatable string reference, string(:)(:))
2018-10-09 Tobias Burnus <burnus@net-b.de> PR fortran/83522 * resolve.c (resolve_ref): Reject nonscalar substring references. PR fortran/83522 * gfortran.dg/actual_array_substr_1.f90: Add dg-error, change to dg-do compile. * gfortran.dg/actual_array_substr_2.f90: Ditto. * gfortran.dg/array_initializer_1.f90: Use array element not size-one section. * gfortran.dg/array_substring.f90: New. From-SVN: r264990
Diffstat (limited to 'gcc/fortran/resolve.c')
-rw-r--r--gcc/fortran/resolve.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/gcc/fortran/resolve.c b/gcc/fortran/resolve.c
index 87e65df..4ec881e 100644
--- a/gcc/fortran/resolve.c
+++ b/gcc/fortran/resolve.c
@@ -5129,6 +5129,13 @@ resolve_ref (gfc_expr *expr)
break;
case REF_SUBSTRING:
+ /* F2008, R610 alias F2018, R908. */
+ if (current_part_dimension || seen_part_dimension)
+ {
+ gfc_error ("Substring reference of nonscalar not permitted at %L",
+ &expr->where);
+ return false;
+ }
break;
}