summaryrefslogtreecommitdiff
path: root/gcc/fortran/trans-expr.c
diff options
context:
space:
mode:
authorrguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4>2014-08-11 07:49:30 +0000
committerrguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4>2014-08-11 07:49:30 +0000
commit57b01fe0048c6bf100e5a710d585abdac021aff4 (patch)
tree59a03fcb651000dd225241b297fda743e5c69e5e /gcc/fortran/trans-expr.c
parent6be49d577254ca021cf0904f920d9785d5fc74c8 (diff)
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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@213809 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/fortran/trans-expr.c')
-rw-r--r--gcc/fortran/trans-expr.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/gcc/fortran/trans-expr.c b/gcc/fortran/trans-expr.c
index 02cec973c1a4..1726d0f033e0 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
{