aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran/expr.c
diff options
context:
space:
mode:
authorLouis Krupp <louis.krupp@zoho.com>2017-12-27 19:20:12 +0000
committerLouis Krupp <lkrupp@gcc.gnu.org>2017-12-27 19:20:12 +0000
commitaefd636b3cc00e1aa37537f9fa3a8381883a1d19 (patch)
tree9ab9aa114277ba50463637b6940bf80217960a8a /gcc/fortran/expr.c
parent467e6f1bb18878c330e1dc88888b133e85524c46 (diff)
downloadgcc-aefd636b3cc00e1aa37537f9fa3a8381883a1d19.zip
gcc-aefd636b3cc00e1aa37537f9fa3a8381883a1d19.tar.gz
gcc-aefd636b3cc00e1aa37537f9fa3a8381883a1d19.tar.bz2
2017_12_27 Louis Krupp <louis.krupp@zoho.com>
PR fortran/83092 * expr.c (gfc_apply_init): Check that typespec has character type before using character length field. 2017_12_27 Louis Krupp <louis.krupp@zoho.com> PR fortran/83092 * gfortran.dg/init_char_with_nonchar_ctr.f90: New test. From-SVN: r256011
Diffstat (limited to 'gcc/fortran/expr.c')
-rw-r--r--gcc/fortran/expr.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/gcc/fortran/expr.c b/gcc/fortran/expr.c
index 428fce1..2cdd465 100644
--- a/gcc/fortran/expr.c
+++ b/gcc/fortran/expr.c
@@ -4208,6 +4208,7 @@ gfc_apply_init (gfc_typespec *ts, symbol_attribute *attr, gfc_expr *init)
if (init->expr_type == EXPR_CONSTANT)
gfc_set_constant_character_len (len, init, -1);
else if (init
+ && init->ts.type == BT_CHARACTER
&& init->ts.u.cl
&& mpz_cmp (ts->u.cl->length->value.integer,
init->ts.u.cl->length->value.integer))