re PR fortran/79335 (Conditional jump or move depends on uninitialised in value get_scalar_to_descriptor_type(tree_node*, symbol_attribute) (trans-expr.c:53))
gcc/fortran/ChangeLog: 2017-02-19 Andre Vehreschild <vehre@gcc.gnu.org> PR fortran/79335 * trans-array.c (duplicate_allocatable_coarray): Ensure attributes passed are properly initialized. (structure_alloc_comps): Same. * trans-expr.c (gfc_trans_structure_assign): Same. From-SVN: r245579
This commit is contained in:
parent
f46e2bc923
commit
e0396d770f
|
@ -1,3 +1,11 @@
|
|||
2017-02-19 Andre Vehreschild <vehre@gcc.gnu.org>
|
||||
|
||||
PR fortran/79335
|
||||
* trans-array.c (duplicate_allocatable_coarray): Ensure attributes
|
||||
passed are properly initialized.
|
||||
(structure_alloc_comps): Same.
|
||||
* trans-expr.c (gfc_trans_structure_assign): Same.
|
||||
|
||||
2017-02-13 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
* trans-expr.c (gfc_conv_substring): Add missing space in diagnostics.
|
||||
|
|
|
@ -7950,6 +7950,8 @@ duplicate_allocatable_coarray (tree dest, tree dest_tok, tree src,
|
|||
tree dummy_desc;
|
||||
|
||||
gfc_init_se (&se, NULL);
|
||||
gfc_clear_attr (&attr);
|
||||
attr.allocatable = 1;
|
||||
dummy_desc = gfc_conv_scalar_to_descriptor (&se, dest, attr);
|
||||
gfc_add_block_to_block (&globalblock, &se.pre);
|
||||
size = TYPE_SIZE_UNIT (TREE_TYPE (type));
|
||||
|
@ -8518,14 +8520,15 @@ structure_alloc_comps (gfc_symbol * der_type, tree decl,
|
|||
else
|
||||
{
|
||||
gfc_se se;
|
||||
symbol_attribute attr;
|
||||
|
||||
gfc_init_se (&se, NULL);
|
||||
gfc_clear_attr (&attr);
|
||||
token = fold_build3_loc (input_location, COMPONENT_REF,
|
||||
pvoid_type_node, decl, c->caf_token,
|
||||
NULL_TREE);
|
||||
comp = gfc_conv_scalar_to_descriptor (&se, comp, attr);
|
||||
comp = gfc_conv_scalar_to_descriptor (&se, comp,
|
||||
c->ts.type == BT_CLASS
|
||||
? CLASS_DATA (c)->attr
|
||||
: c->attr);
|
||||
gfc_add_block_to_block (&fnblock, &se.pre);
|
||||
}
|
||||
|
||||
|
|
|
@ -7516,7 +7516,6 @@ gfc_trans_structure_assign (tree dest, gfc_expr * expr, bool init, bool coarray)
|
|||
&& (!c->expr || c->expr->expr_type == EXPR_NULL))
|
||||
{
|
||||
tree token, desc, size;
|
||||
symbol_attribute attr;
|
||||
bool is_array = cm->ts.type == BT_CLASS
|
||||
? CLASS_DATA (cm)->attr.dimension : cm->attr.dimension;
|
||||
|
||||
|
@ -7549,7 +7548,10 @@ gfc_trans_structure_assign (tree dest, gfc_expr * expr, bool init, bool coarray)
|
|||
}
|
||||
else
|
||||
{
|
||||
desc = gfc_conv_scalar_to_descriptor (&se, field, attr);
|
||||
desc = gfc_conv_scalar_to_descriptor (&se, field,
|
||||
cm->ts.type == BT_CLASS
|
||||
? CLASS_DATA (cm)->attr
|
||||
: cm->attr);
|
||||
size = TYPE_SIZE_UNIT (TREE_TYPE (field));
|
||||
}
|
||||
gfc_add_block_to_block (&block, &se.pre);
|
||||
|
|
Loading…
Reference in New Issue