diff options
author | Jan Hubicka <jh@suse.cz> | 2013-08-01 15:24:49 +0200 |
---|---|---|
committer | Jan Hubicka <hubicka@gcc.gnu.org> | 2013-08-01 13:24:49 +0000 |
commit | c0c123ef5222b0e12a5984640f0dd4db4ada569c (patch) | |
tree | f96fc1c036664588c53ba5479a910145514f98f5 /gcc/cgraph.c | |
parent | 0cd1dd571b98da5eaf06a8af62df111c4e6a3b60 (diff) | |
download | gcc-c0c123ef5222b0e12a5984640f0dd4db4ada569c.zip gcc-c0c123ef5222b0e12a5984640f0dd4db4ada569c.tar.gz gcc-c0c123ef5222b0e12a5984640f0dd4db4ada569c.tar.bz2 |
cgraph.c (cgraph_release_function_body): Use used_as_abstract_origin.
* cgraph.c (cgraph_release_function_body): Use used_as_abstract_origin.
(cgraph_release_function_body): Likewise.
(cgraph_can_remove_if_no_direct_calls_p): Likewise.
* cgraph.h (cgrpah_node): Rename abstract_and_needed
to used_as_abstract_origin.
* tree-inline-transfrom.c (can_remove_node_now_p_1): Do not remove
symbols used as abstract origins.
* cgraphunit.c (analyze_functions): Update.
* ipa.c (symtab_remove_unreachable_nodes): Recompute used_as_abstract_origin.
* tree-inline.c (tree_function_versioning): Update
used_as_abstract_origin; be ready for DECL_RESULT and DECL_ARGUMENTS to be
NULL.
* lto-symtab.c (lto_symtab_merge_symbols): Merge duplicated nodes for abstract functions.
* cgraph.h (symtab_real_symbol_p): Abstract declarations are not real symbols.
From-SVN: r201408
Diffstat (limited to 'gcc/cgraph.c')
-rw-r--r-- | gcc/cgraph.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/gcc/cgraph.c b/gcc/cgraph.c index be3411d..5b3fb5a 100644 --- a/gcc/cgraph.c +++ b/gcc/cgraph.c @@ -1316,7 +1316,7 @@ void cgraph_release_function_body (struct cgraph_node *node) { node->ipa_transforms_to_apply.release (); - if (!node->abstract_and_needed && cgraph_state != CGRAPH_STATE_PARSING) + if (!node->used_as_abstract_origin && cgraph_state != CGRAPH_STATE_PARSING) { DECL_RESULT (node->symbol.decl) = NULL; DECL_ARGUMENTS (node->symbol.decl) = NULL; @@ -1324,7 +1324,7 @@ cgraph_release_function_body (struct cgraph_node *node) /* If the node is abstract and needed, then do not clear DECL_INITIAL of its associated function function declaration because it's needed to emit debug info later. */ - if (!node->abstract_and_needed && DECL_INITIAL (node->symbol.decl)) + if (!node->used_as_abstract_origin && DECL_INITIAL (node->symbol.decl)) DECL_INITIAL (node->symbol.decl) = error_mark_node; release_function_body (node->symbol.decl); } |