aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran
diff options
context:
space:
mode:
authorSteven G. Kargl <kargl@gcc.gnu.org>2018-01-10 21:31:43 +0000
committerSteven G. Kargl <kargl@gcc.gnu.org>2018-01-10 21:31:43 +0000
commit266404a8d62b99ab6dd6579bbd33fca32e91ca3b (patch)
tree8f3b4f3181519c3e8ef37d4d7edb1d51c4d2c52f /gcc/fortran
parent88324fd006d3ba0ed4808cc0b3569b8c6af29624 (diff)
downloadgcc-266404a8d62b99ab6dd6579bbd33fca32e91ca3b.zip
gcc-266404a8d62b99ab6dd6579bbd33fca32e91ca3b.tar.gz
gcc-266404a8d62b99ab6dd6579bbd33fca32e91ca3b.tar.bz2
[multiple changes]
2018-01-10 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/83093 * resolve.c (resolve_charlen): Check the type of cl->length after resolution. 2018-01-10 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/83093 * gfortran.dg/allocate_with_typespec_7.f90: New test. From-SVN: r256455
Diffstat (limited to 'gcc/fortran')
-rw-r--r--gcc/fortran/ChangeLog6
-rw-r--r--gcc/fortran/resolve.c9
2 files changed, 14 insertions, 1 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index 05ea28e..6bad1a6 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,3 +1,9 @@
+2018-01-10 Steven G. Kargl <kargl@gcc.gnu.org>
+
+ PR fortran/83093
+ * resolve.c (resolve_charlen): Check the type of cl->length
+ after resolution.
+
2018-01-10 Janne Blomqvist <jb@gcc.gnu.org>
PR fortran/83740
diff --git a/gcc/fortran/resolve.c b/gcc/fortran/resolve.c
index 57155cd..1950483 100644
--- a/gcc/fortran/resolve.c
+++ b/gcc/fortran/resolve.c
@@ -11664,10 +11664,17 @@ resolve_charlen (gfc_charlen *cl)
specification_expr = saved_specification_expr;
return false;
}
+
+ /* cl->length has been resolved. It should have an integer type. */
+ if (cl->length->ts.type != BT_INTEGER)
+ {
+ gfc_error ("Scalar INTEGER expression expected at %L",
+ &cl->length->where);
+ return false;
+ }
}
else
{
-
if (!resolve_index_expr (cl->length))
{
specification_expr = saved_specification_expr;