summaryrefslogtreecommitdiff
path: root/gcc/fortran/trans-array.c
diff options
context:
space:
mode:
authormrs <mrs@138bc75d-0d04-0410-961f-82ee72b054a4>2014-02-10 18:07:31 +0000
committermrs <mrs@138bc75d-0d04-0410-961f-82ee72b054a4>2014-02-10 18:07:31 +0000
commitfe34354e72b674130ffcf5a67e2d0b3b7307383e (patch)
treeca6f19ee04949a3bcd2ab0374a056dcb46fc2056 /gcc/fortran/trans-array.c
parent8b3716ff7532ddf9cb6f3ae6beac038506b70941 (diff)
parentbf62ed7307453c4f8d35c952fba2c2a5d990b1a4 (diff)
downloadgcc-fe34354e72b674130ffcf5a67e2d0b3b7307383e.tar.gz
Merge in trunk.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/wide-int@207666 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/fortran/trans-array.c')
-rw-r--r--gcc/fortran/trans-array.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/gcc/fortran/trans-array.c b/gcc/fortran/trans-array.c
index 4ca2db3e447..66270f332e3 100644
--- a/gcc/fortran/trans-array.c
+++ b/gcc/fortran/trans-array.c
@@ -2492,6 +2492,11 @@ gfc_add_loop_ss_code (gfc_loopinfo * loop, gfc_ss * ss, bool subscript,
a reference to the value. */
gfc_conv_expr (&se, expr);
}
+
+ /* Ensure that a pointer to the string is stored. */
+ if (expr->ts.type == BT_CHARACTER)
+ gfc_conv_string_parameter (&se);
+
gfc_add_block_to_block (&outer_loop->pre, &se.pre);
gfc_add_block_to_block (&outer_loop->post, &se.post);
if (gfc_is_class_scalar_expr (expr))