aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran/trans-decl.c
diff options
context:
space:
mode:
authorJan Hubicka <jh@suse.cz>2004-09-20 22:38:29 +0200
committerJan Hubicka <hubicka@gcc.gnu.org>2004-09-20 20:38:29 +0000
commit8f2353433c31121e5ec31f24d70b80c385fb28ff (patch)
tree25c6e4482c10189121acfa2bf0f54130a9876b63 /gcc/fortran/trans-decl.c
parent04161e2bde5dee7dbe9c7863f3cb6f262c8d059c (diff)
downloadgcc-8f2353433c31121e5ec31f24d70b80c385fb28ff.zip
gcc-8f2353433c31121e5ec31f24d70b80c385fb28ff.tar.gz
gcc-8f2353433c31121e5ec31f24d70b80c385fb28ff.tar.bz2
re PR middle-end/16460 (ICE when compiling glibc (ld-ctype.c))
PR middle-end/16460 * cgraph.c (cgraph_unnest_node): New function. (c_finalize): Rename to .... (c_warn_unused_result_recursivly): ... this one; do only the warning (finish_function): Finalize the toplevel function; do not lower nested tree. * cgraph.h (cgraph_unnest_node): Declare. * cgraphunit.c (decide_is_function_needed): Do not use cgraph nestedness datastructure. * cse.c (cse_insn): Do not cprop nonlocal LABEL_REFs. * reload1.c (set_label_offsets): Fix call of set_label_offsets. * tree-nested.c (finlize_nesting_tree_1): Use un-nesting code. * utils.c (gnat_finalize): Remove. (end_subprog_body): Directly call cgraph_finalize_function; do not lower the nested functions. * trans-decl.c (build_entry_thunks): Finalize the function; do not lower tree. (gfc_generate_function_code): Likewise. From-SVN: r87770
Diffstat (limited to 'gcc/fortran/trans-decl.c')
-rw-r--r--gcc/fortran/trans-decl.c22
1 files changed, 2 insertions, 20 deletions
diff --git a/gcc/fortran/trans-decl.c b/gcc/fortran/trans-decl.c
index 8cb308d..cbe36f7 100644
--- a/gcc/fortran/trans-decl.c
+++ b/gcc/fortran/trans-decl.c
@@ -1255,22 +1255,6 @@ create_function_arglist (gfc_symbol * sym)
DECL_ARGUMENTS (fndecl) = arglist;
}
-
-/* Finalize DECL and all nested functions with cgraph. */
-
-static void
-gfc_finalize (tree decl)
-{
- struct cgraph_node *cgn;
-
- cgn = cgraph_node (decl);
- for (cgn = cgn->nested; cgn ; cgn = cgn->next_nested)
- gfc_finalize (cgn->decl);
-
- cgraph_finalize_function (decl, false);
-}
-
-
/* Convert FNDECL's code to GIMPLE and handle any nested functions. */
static void
@@ -1431,8 +1415,7 @@ build_entry_thunks (gfc_namespace * ns)
current_function_decl = NULL_TREE;
gfc_gimplify_function (thunk_fndecl);
- lower_nested_functions (thunk_fndecl);
- gfc_finalize (thunk_fndecl);
+ cgraph_finalize_function (thunk_fndecl, false);
/* We share the symbols in the formal argument list with other entry
points and the master function. Clear them so that they are
@@ -2313,8 +2296,7 @@ gfc_generate_function_code (gfc_namespace * ns)
else
{
gfc_gimplify_function (fndecl);
- lower_nested_functions (fndecl);
- gfc_finalize (fndecl);
+ cgraph_finalize_function (fndecl, false);
}
}