trans-decl.c (gfc_get_symbol_decl): Removed duplicate code.
* trans-decl.c (gfc_get_symbol_decl): Removed duplicate code. * trans-expr.c (gfc_conv_intrinsic_to_class): Fixed indentation. Fixed datatype of charlen to be a 32-bit int. From-SVN: r220345
This commit is contained in:
parent
e404a667bf
commit
56d1b78a4a
@ -1,3 +1,10 @@
|
||||
|
||||
2015-01-30 Andre Vehreschild <vehre@gmx.de>
|
||||
|
||||
* trans-decl.c (gfc_get_symbol_decl): Removed duplicate code.
|
||||
* trans-expr.c (gfc_conv_intrinsic_to_class): Fixed indentation.
|
||||
Fixed datatype of charlen to be a 32-bit int.
|
||||
|
||||
2015-02-01 Joseph Myers <joseph@codesourcery.com>
|
||||
|
||||
* error.c (gfc_warning (const char *, ...), gfc_warning_now (const
|
||||
|
@ -1443,8 +1443,6 @@ gfc_get_symbol_decl (gfc_symbol * sym)
|
||||
if (sym->ts.type == BT_CLASS && sym->backend_decl)
|
||||
GFC_DECL_CLASS(sym->backend_decl) = 1;
|
||||
|
||||
if (sym->ts.type == BT_CLASS && sym->backend_decl)
|
||||
GFC_DECL_CLASS(sym->backend_decl) = 1;
|
||||
return sym->backend_decl;
|
||||
}
|
||||
|
||||
|
@ -660,26 +660,26 @@ gfc_conv_intrinsic_to_class (gfc_se *parmse, gfc_expr *e,
|
||||
expression can be evaluated to a constant one. */
|
||||
else
|
||||
{
|
||||
/* Try to simplify the expression. */
|
||||
gfc_simplify_expr (e, 0);
|
||||
if (e->expr_type == EXPR_CONSTANT && !e->ts.u.cl->resolved)
|
||||
{
|
||||
/* Amazingly all data is present to compute the length of a
|
||||
constant string, but the expression is not yet there. */
|
||||
e->ts.u.cl->length = gfc_get_constant_expr (BT_INTEGER, 1,
|
||||
&e->where);
|
||||
mpz_set_ui (e->ts.u.cl->length->value.integer,
|
||||
e->value.character.length);
|
||||
gfc_conv_const_charlen (e->ts.u.cl);
|
||||
e->ts.u.cl->resolved = 1;
|
||||
gfc_add_modify (&parmse->pre, ctree, e->ts.u.cl->backend_decl);
|
||||
}
|
||||
else
|
||||
{
|
||||
gfc_error ("Can't compute the length of the char array at %L.",
|
||||
&e->where);
|
||||
}
|
||||
}
|
||||
/* Try to simplify the expression. */
|
||||
gfc_simplify_expr (e, 0);
|
||||
if (e->expr_type == EXPR_CONSTANT && !e->ts.u.cl->resolved)
|
||||
{
|
||||
/* Amazingly all data is present to compute the length of a
|
||||
constant string, but the expression is not yet there. */
|
||||
e->ts.u.cl->length = gfc_get_constant_expr (BT_INTEGER, 4,
|
||||
&e->where);
|
||||
mpz_set_ui (e->ts.u.cl->length->value.integer,
|
||||
e->value.character.length);
|
||||
gfc_conv_const_charlen (e->ts.u.cl);
|
||||
e->ts.u.cl->resolved = 1;
|
||||
gfc_add_modify (&parmse->pre, ctree, e->ts.u.cl->backend_decl);
|
||||
}
|
||||
else
|
||||
{
|
||||
gfc_error ("Can't compute the length of the char array at %L.",
|
||||
&e->where);
|
||||
}
|
||||
}
|
||||
}
|
||||
/* Pass the address of the class object. */
|
||||
parmse->expr = gfc_build_addr_expr (NULL_TREE, var);
|
||||
|
Loading…
Reference in New Issue
Block a user