diff options
author | Andre Vehreschild <vehre@gmx.de> | 2015-02-02 10:59:47 +0100 |
---|---|---|
committer | Andre Vehreschild <vehre@gcc.gnu.org> | 2015-02-02 10:59:47 +0100 |
commit | 56d1b78a4ac49ff3f526222369001f1d717e483e (patch) | |
tree | 1aef4fe064bf03b726363ccaf7b50cccdd9eb5b6 | |
parent | e404a667bf4b0fcef2a4af1b32ef21f5b07367b6 (diff) | |
download | gcc-56d1b78a4ac49ff3f526222369001f1d717e483e.zip gcc-56d1b78a4ac49ff3f526222369001f1d717e483e.tar.gz gcc-56d1b78a4ac49ff3f526222369001f1d717e483e.tar.bz2 |
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
-rw-r--r-- | gcc/fortran/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/fortran/trans-decl.c | 2 | ||||
-rw-r--r-- | gcc/fortran/trans-expr.c | 40 |
3 files changed, 27 insertions, 22 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 7e455ef..6d5964a 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -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 diff --git a/gcc/fortran/trans-decl.c b/gcc/fortran/trans-decl.c index 8a65d2b..3664824 100644 --- a/gcc/fortran/trans-decl.c +++ b/gcc/fortran/trans-decl.c @@ -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; } diff --git a/gcc/fortran/trans-expr.c b/gcc/fortran/trans-expr.c index 70da287..6b11fb3 100644 --- a/gcc/fortran/trans-expr.c +++ b/gcc/fortran/trans-expr.c @@ -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); |