diff options
author | Jan Hubicka <jh@suse.cz> | 2004-09-20 22:38:29 +0200 |
---|---|---|
committer | Jan Hubicka <hubicka@gcc.gnu.org> | 2004-09-20 20:38:29 +0000 |
commit | 8f2353433c31121e5ec31f24d70b80c385fb28ff (patch) | |
tree | 25c6e4482c10189121acfa2bf0f54130a9876b63 /gcc/ada | |
parent | 04161e2bde5dee7dbe9c7863f3cb6f262c8d059c (diff) | |
download | gcc-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/ada')
-rw-r--r-- | gcc/ada/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/ada/utils.c | 19 |
2 files changed, 7 insertions, 18 deletions
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog index 8c1632d..d550302 100644 --- a/gcc/ada/ChangeLog +++ b/gcc/ada/ChangeLog @@ -1,3 +1,9 @@ +2004-09-20 Jan Hubicka <jh@suse.cz> + + * utils.c (gnat_finalize): Remove. + (end_subprog_body): Directly call cgraph_finalize_function; + do not lower the nested functions. + 2004-09-20 Robert Dewar <dewar@gnat.com> PR ada/17540 diff --git a/gcc/ada/utils.c b/gcc/ada/utils.c index 1a5afb3..e09c83e 100644 --- a/gcc/ada/utils.c +++ b/gcc/ada/utils.c @@ -125,7 +125,6 @@ static tree compute_related_constant (tree, tree); static tree split_plus (tree, tree *); static bool value_zerop (tree); static void gnat_gimplify_function (tree); -static void gnat_finalize (tree); static tree float_type_for_precision (int, enum machine_mode); static tree convert_to_fat_pointer (tree, tree); static tree convert_to_thin_pointer (tree, tree); @@ -1793,8 +1792,7 @@ end_subprog_body (tree body) if (!DECL_CONTEXT (fndecl)) { gnat_gimplify_function (fndecl); - lower_nested_functions (fndecl); - gnat_finalize (fndecl); + cgraph_finalize_function (fndecl, false); } else /* Register this function with cgraph just far enough to get it @@ -1820,21 +1818,6 @@ gnat_gimplify_function (tree fndecl) for (cgn = cgn->nested; cgn; cgn = cgn->next_nested) gnat_gimplify_function (cgn->decl); } - -/* Give FNDECL and all its nested functions to cgraph for compilation. */ - -static void -gnat_finalize (tree fndecl) -{ - struct cgraph_node *cgn; - - /* Finalize all nested functions now. */ - cgn = cgraph_node (fndecl); - for (cgn = cgn->nested; cgn ; cgn = cgn->next_nested) - gnat_finalize (cgn->decl); - - cgraph_finalize_function (fndecl, false); -} /* Return a definition for a builtin function named NAME and whose data type is TYPE. TYPE should be a function type with argument types. |