aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran
diff options
context:
space:
mode:
authorMikael Morin <mikael@gcc.gnu.org>2023-07-17 14:13:58 +0200
committerMikael Morin <mikael@gcc.gnu.org>2023-07-17 14:13:58 +0200
commit268fda4b427cc8f24a15ce63031709aadbf3eeb8 (patch)
treed8d18d6669cee7f4ad0cf3149237011ea7462aad /gcc/fortran
parentba5e2df515204ddbc52422f17351f93abd159682 (diff)
downloadgcc-268fda4b427cc8f24a15ce63031709aadbf3eeb8.zip
gcc-268fda4b427cc8f24a15ce63031709aadbf3eeb8.tar.gz
gcc-268fda4b427cc8f24a15ce63031709aadbf3eeb8.tar.bz2
fortran: Inline variable definition
The variable has_finalizer is only used in one place, inline its definition there. gcc/fortran/ChangeLog: * trans.cc (gfc_add_finalizer_call): Inline definition of variable has_finalizer. Merge nested conditions.
Diffstat (limited to 'gcc/fortran')
-rw-r--r--gcc/fortran/trans.cc16
1 files changed, 7 insertions, 9 deletions
diff --git a/gcc/fortran/trans.cc b/gcc/fortran/trans.cc
index 0753ccd..68e1ca9 100644
--- a/gcc/fortran/trans.cc
+++ b/gcc/fortran/trans.cc
@@ -1320,7 +1320,6 @@ gfc_add_finalizer_call (stmtblock_t *block, gfc_expr *expr2)
tree tmp;
gfc_ref *ref;
gfc_expr *expr;
- bool has_finalizer = false;
if (!expr2 || (expr2->ts.type != BT_DERIVED && expr2->ts.type != BT_CLASS))
return false;
@@ -1360,13 +1359,11 @@ gfc_add_finalizer_call (stmtblock_t *block, gfc_expr *expr2)
ref->next = NULL;
}
- if (expr->ts.type == BT_CLASS)
- {
- has_finalizer = gfc_is_finalizable (expr->ts.u.derived, NULL);
-
- if (!expr2->rank && !expr2->ref && CLASS_DATA (expr2->symtree->n.sym)->as)
- expr->rank = CLASS_DATA (expr2->symtree->n.sym)->as->rank;
- }
+ if (expr->ts.type == BT_CLASS
+ && !expr2->rank
+ && !expr2->ref
+ && CLASS_DATA (expr2->symtree->n.sym)->as)
+ expr->rank = CLASS_DATA (expr2->symtree->n.sym)->as->rank;
stmtblock_t tmp_block;
gfc_start_block (&tmp_block);
@@ -1397,7 +1394,8 @@ gfc_add_finalizer_call (stmtblock_t *block, gfc_expr *expr2)
tmp = gfc_finish_block (&tmp_block);
- if (expr->ts.type == BT_CLASS && !has_finalizer)
+ if (expr->ts.type == BT_CLASS
+ && !gfc_is_finalizable (expr->ts.u.derived, NULL))
{
tree cond;
gfc_se se;