aboutsummaryrefslogtreecommitdiff
path: root/gcc/cgraph.h
diff options
context:
space:
mode:
authorJan Hubicka <jh@suse.cz>2013-08-01 15:24:49 +0200
committerJan Hubicka <hubicka@gcc.gnu.org>2013-08-01 13:24:49 +0000
commitc0c123ef5222b0e12a5984640f0dd4db4ada569c (patch)
treef96fc1c036664588c53ba5479a910145514f98f5 /gcc/cgraph.h
parent0cd1dd571b98da5eaf06a8af62df111c4e6a3b60 (diff)
downloadgcc-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.h6
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 */