aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/fortran/ChangeLog6
-rw-r--r--gcc/fortran/trans-expr.c4
2 files changed, 9 insertions, 1 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index 4abb16e..16c07bd 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,3 +1,9 @@
+2014-08-11 Richard Biener <rguenther@suse.de>
+
+ PR fortran/61950
+ * trans-expr.c (gfc_conv_structure): Initialize _size with
+ a value of proper type.
+
2014-08-10 Thomas Koenig <tkoenig@gcc.gnu.org>
PR fortran/61999
diff --git a/gcc/fortran/trans-expr.c b/gcc/fortran/trans-expr.c
index 02cec97..1726d0f 100644
--- a/gcc/fortran/trans-expr.c
+++ b/gcc/fortran/trans-expr.c
@@ -6260,7 +6260,9 @@ gfc_conv_structure (gfc_se * se, gfc_expr * expr, int init)
else if (cm->ts.u.derived && strcmp (cm->name, "_size") == 0)
{
val = TYPE_SIZE_UNIT (gfc_get_derived_type (cm->ts.u.derived));
- CONSTRUCTOR_APPEND_ELT (v, cm->backend_decl, val);
+ CONSTRUCTOR_APPEND_ELT (v, cm->backend_decl,
+ fold_convert (TREE_TYPE (cm->backend_decl),
+ val));
}
else
{