diff options
author | Tobias Burnus <burnus@net-b.de> | 2012-09-15 17:44:22 +0200 |
---|---|---|
committer | Tobias Burnus <burnus@gcc.gnu.org> | 2012-09-15 17:44:22 +0200 |
commit | fc2655fb3082182075b288b58c93ac563ef661a0 (patch) | |
tree | cbc423f1f72886520c3332a55320578a49eb12e1 /gcc/fortran/dump-parse-tree.c | |
parent | fd2805e11b7018a148a4f87201b4d85344b5aad4 (diff) | |
download | gcc-fc2655fb3082182075b288b58c93ac563ef661a0.zip gcc-fc2655fb3082182075b288b58c93ac563ef661a0.tar.gz gcc-fc2655fb3082182075b288b58c93ac563ef661a0.tar.bz2 |
arith.c (arith_power): Call gfc_free_expr in case of error.
2012-09-15 Tobias Burnus <burnus@net-b.de>
* arith.c (arith_power): Call gfc_free_expr in case of error.
* array.c (gfc_match_array_constructor): Initialize variable.
(gfc_resolve_character_array_constructor): Remove superfluous check.
(gfc_array_dimen_size): Add assert.
* check.c (numeric_check): Fix implicit typing.
* class.c (gfc_build_class_symbol): Add assert.
(finalize_component): Free memory.
* dump-parse-tree.c (show_namespace): Add assert.
* trans-io.c (transfer_namelist_element, transfer_expr): Avoid
memory leakage.
(gfc_trans_transfer): Add assert.
* trans.c (gfc_trans_runtime_check): Call va_end
From-SVN: r191344
Diffstat (limited to 'gcc/fortran/dump-parse-tree.c')
-rw-r--r-- | gcc/fortran/dump-parse-tree.c | 88 |
1 files changed, 42 insertions, 46 deletions
diff --git a/gcc/fortran/dump-parse-tree.c b/gcc/fortran/dump-parse-tree.c index 9d6f93c..a442625 100644 --- a/gcc/fortran/dump-parse-tree.c +++ b/gcc/fortran/dump-parse-tree.c @@ -2248,67 +2248,63 @@ show_namespace (gfc_namespace *ns) gfc_equiv *eq; int i; + gcc_assert (ns); save = gfc_current_ns; show_indent (); fputs ("Namespace:", dumpfile); - if (ns != NULL) + i = 0; + do { - i = 0; - do - { - int l = i; - while (i < GFC_LETTERS - 1 - && gfc_compare_types(&ns->default_type[i+1], - &ns->default_type[l])) - i++; - - if (i > l) - fprintf (dumpfile, " %c-%c: ", l+'A', i+'A'); - else - fprintf (dumpfile, " %c: ", l+'A'); + int l = i; + while (i < GFC_LETTERS - 1 + && gfc_compare_types (&ns->default_type[i+1], + &ns->default_type[l])) + i++; + + if (i > l) + fprintf (dumpfile, " %c-%c: ", l+'A', i+'A'); + else + fprintf (dumpfile, " %c: ", l+'A'); - show_typespec(&ns->default_type[l]); - i++; - } while (i < GFC_LETTERS); + show_typespec(&ns->default_type[l]); + i++; + } while (i < GFC_LETTERS); - if (ns->proc_name != NULL) - { - show_indent (); - fprintf (dumpfile, "procedure name = %s", ns->proc_name->name); - } + if (ns->proc_name != NULL) + { + show_indent (); + fprintf (dumpfile, "procedure name = %s", ns->proc_name->name); + } - ++show_level; - gfc_current_ns = ns; - gfc_traverse_symtree (ns->common_root, show_common); + ++show_level; + gfc_current_ns = ns; + gfc_traverse_symtree (ns->common_root, show_common); - gfc_traverse_symtree (ns->sym_root, show_symtree); + gfc_traverse_symtree (ns->sym_root, show_symtree); - for (op = GFC_INTRINSIC_BEGIN; op != GFC_INTRINSIC_END; op++) - { - /* User operator interfaces */ - intr = ns->op[op]; - if (intr == NULL) - continue; + for (op = GFC_INTRINSIC_BEGIN; op != GFC_INTRINSIC_END; op++) + { + /* User operator interfaces */ + intr = ns->op[op]; + if (intr == NULL) + continue; - show_indent (); - fprintf (dumpfile, "Operator interfaces for %s:", - gfc_op2string ((gfc_intrinsic_op) op)); + show_indent (); + fprintf (dumpfile, "Operator interfaces for %s:", + gfc_op2string ((gfc_intrinsic_op) op)); - for (; intr; intr = intr->next) - fprintf (dumpfile, " %s", intr->sym->name); - } + for (; intr; intr = intr->next) + fprintf (dumpfile, " %s", intr->sym->name); + } - if (ns->uop_root != NULL) - { - show_indent (); - fputs ("User operators:\n", dumpfile); - gfc_traverse_user_op (ns, show_uop); - } + if (ns->uop_root != NULL) + { + show_indent (); + fputs ("User operators:\n", dumpfile); + gfc_traverse_user_op (ns, show_uop); } - else - ++show_level; for (eq = ns->equiv; eq; eq = eq->next) show_equiv (eq); |