diff options
author | Tobias Burnus <burnus@net-b.de> | 2012-09-15 17:42:01 +0200 |
---|---|---|
committer | Tobias Burnus <burnus@gcc.gnu.org> | 2012-09-15 17:42:01 +0200 |
commit | fd2805e11b7018a148a4f87201b4d85344b5aad4 (patch) | |
tree | 05e97776b1fe54ef1d015ca3c6f07b279078ff83 /gcc/fortran/symbol.c | |
parent | 8385420c4f45090a3393557783d8c7c73ef9a9b7 (diff) | |
download | gcc-fd2805e11b7018a148a4f87201b4d85344b5aad4.zip gcc-fd2805e11b7018a148a4f87201b4d85344b5aad4.tar.gz gcc-fd2805e11b7018a148a4f87201b4d85344b5aad4.tar.bz2 |
match.c (lock_unlock_statement, [...]): Fix potential double freeing.
2012-09-15 Tobias Burnus <burnus@net-b.de>
* match.c (lock_unlock_statement, sync_statement): Fix potential
double freeing.
(sync_statement): Remove unreachable code.
* simplify.c (gfc_simplify_bessel_n2): Avoid double freeing.
(gfc_simplify_repeat): Remove bogus code.
* target-memory.h (gfc_target_encode_expr): Update prototype.
* target-memory.c (gfc_target_encode_expr, encode_array,
encode_derived): Return unsigned HOST_WIDE_INT.
(gfc_target_interpret_expr): Add assert.
(gfc_merge_initializers): Fix "== 0" check for mpz_t.
* symbol.c (gfc_get_typebound_proc): Add assert.
(gfc_merge_initializers): Remove unreachable check.
From-SVN: r191343
Diffstat (limited to 'gcc/fortran/symbol.c')
-rw-r--r-- | gcc/fortran/symbol.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/gcc/fortran/symbol.c b/gcc/fortran/symbol.c index 1f4a735..d68208d 100644 --- a/gcc/fortran/symbol.c +++ b/gcc/fortran/symbol.c @@ -4846,7 +4846,9 @@ gfc_get_typebound_proc (gfc_typebound_proc *tb0) gfc_symbol* gfc_get_derived_super_type (gfc_symbol* derived) { - if (derived && derived->attr.generic) + gcc_assert (derived); + + if (derived->attr.generic) derived = gfc_find_dt_in_generic (derived); if (!derived->attr.extension) @@ -4968,7 +4970,7 @@ gfc_find_dt_in_generic (gfc_symbol *sym) return sym; if (sym->attr.generic) - for (intr = (sym ? sym->generic : NULL); intr; intr = intr->next) + for (intr = sym->generic; intr; intr = intr->next) if (intr->sym->attr.flavor == FL_DERIVED) break; return intr ? intr->sym : NULL; |