aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran
diff options
context:
space:
mode:
authorPaul Thomas <pault@gcc.gnu.org>2018-01-23 19:10:48 +0000
committerPaul Thomas <pault@gcc.gnu.org>2018-01-23 19:10:48 +0000
commit84ee745e333717fb3b64f66310499993c5ee1835 (patch)
treee6bcb86564423083aacb1a1dfb031c770dcd9d61 /gcc/fortran
parent5955438a2ea81d9fb97d87a913315062ac47672b (diff)
downloadgcc-84ee745e333717fb3b64f66310499993c5ee1835.zip
gcc-84ee745e333717fb3b64f66310499993c5ee1835.tar.gz
gcc-84ee745e333717fb3b64f66310499993c5ee1835.tar.bz2
re PR fortran/83898 (ICE in gfc_conv_expr_descriptor, at fortran/trans-array.c:7181)
2018-23-01 Paul Thomas <pault@gcc.gnu.org> PR fortran/83898 * trans-stmt.c (trans_associate_var): Do not set cst_array_ctor for characters. 2018-23-01 Paul Thomas <pault@gcc.gnu.org> PR fortran/83898 * gfortran.dg/associate_33.f03 : New test. From-SVN: r256994
Diffstat (limited to 'gcc/fortran')
-rw-r--r--gcc/fortran/ChangeLog6
-rw-r--r--gcc/fortran/trans-stmt.c3
2 files changed, 8 insertions, 1 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index f8a7c9a..f50d8a8 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,3 +1,9 @@
+2018-23-01 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/83898
+ * trans-stmt.c (trans_associate_var): Do not set cst_array_ctor
+ for characters.
+
2018-01-22 Janne Blomqvist <jb@gcc.gnu.org>
PR 78534
diff --git a/gcc/fortran/trans-stmt.c b/gcc/fortran/trans-stmt.c
index ff6e591..df83a2b 100644
--- a/gcc/fortran/trans-stmt.c
+++ b/gcc/fortran/trans-stmt.c
@@ -1579,7 +1579,8 @@ trans_associate_var (gfc_symbol *sym, gfc_wrapped_block *block)
desc = sym->backend_decl;
cst_array_ctor = e->expr_type == EXPR_ARRAY
- && gfc_constant_array_constructor_p (e->value.constructor);
+ && gfc_constant_array_constructor_p (e->value.constructor)
+ && e->ts.type != BT_CHARACTER;
/* If association is to an expression, evaluate it and create temporary.
Otherwise, get descriptor of target for pointer assignment. */