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.h | |
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.h')
-rw-r--r-- | gcc/cgraph.h | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/gcc/cgraph.h b/gcc/cgraph.h index 3d6f387..99acb62 100644 --- a/gcc/cgraph.h +++ b/gcc/cgraph.h @@ -303,7 +303,7 @@ struct GTY(()) cgraph_node { /* Set when decl is an abstract function pointed to by the ABSTRACT_DECL_ORIGIN of a reachable function. */ - unsigned abstract_and_needed : 1; + unsigned used_as_abstract_origin : 1; /* Set once the function is lowered (i.e. its CFG is built). */ unsigned lowered : 1; /* Set once the function has been instantiated and its callee @@ -1347,13 +1347,13 @@ symtab_real_symbol_p (symtab_node node) { struct cgraph_node *cnode; + if (DECL_ABSTRACT (node->symbol.decl)) + return false; if (!is_a <cgraph_node> (node)) return true; cnode = cgraph (node); if (cnode->global.inlined_to) return false; - if (cnode->abstract_and_needed) - return false; return true; } #endif /* GCC_CGRAPH_H */ |