Commit ee6f1177 by Jan Hubicka Committed by Jan Hubicka

cgraph.c (cgraph_make_decl_local): Handle DECL_ONE_ONLY similarly to DECL_COMDAT.

	* cgraph.c (cgraph_make_decl_local): Handle DECL_ONE_ONLY
	similarly to DECL_COMDAT.
	* cgraphunit.c (cgraph_analyze_function): Likewise.
	* ipa.c (function_and_variable_visibility): Likewise.

From-SVN: r175015
parent 618abf9a
2011-06-13 Jan Hubicka <jh@suse.cz>
* cgraph.c (cgraph_make_decl_local): Handle DECL_ONE_ONLY
similarly to DECL_COMDAT.
* cgraphunit.c (cgraph_analyze_function): Likewise.
* ipa.c (function_and_variable_visibility): Likewise.
2011-06-13 Jan Hubicka <jh@suse.cz>
* lto-streamer-out.c (lto_output_ts_binfo_tree_pointers): Do not output
BINFO_VIRTUALS when streaming for ltrans unit.
......
......@@ -2487,7 +2487,7 @@ cgraph_make_decl_local (tree decl)
DECL_COMMON (decl) = 0;
else gcc_assert (TREE_CODE (decl) == FUNCTION_DECL);
if (DECL_COMDAT (decl))
if (DECL_ONE_ONLY (decl) || DECL_COMDAT (decl))
{
/* It is possible that we are linking against library defining same COMDAT
function. To avoid conflict we need to rename our local name of the
......
......@@ -830,9 +830,9 @@ cgraph_analyze_function (struct cgraph_node *node)
if (TREE_PUBLIC (node->decl) && node->same_body_alias)
{
DECL_EXTERNAL (node->decl) = DECL_EXTERNAL (node->thunk.alias);
if (DECL_COMDAT (node->thunk.alias))
if (DECL_ONE_ONLY (node->thunk.alias))
{
DECL_COMDAT (node->decl) = 1;
DECL_COMDAT (node->decl) = DECL_COMDAT (node->thunk.alias);
DECL_COMDAT_GROUP (node->decl) = DECL_COMDAT_GROUP (node->thunk.alias);
if (DECL_ONE_ONLY (node->thunk.alias) && !node->same_comdat_group)
{
......
......@@ -904,9 +904,9 @@ function_and_variable_visibility (bool whole_program)
We also need to arrange the thunk into the same comdat group as
the function it reffers to. */
if (DECL_COMDAT (decl_node->decl))
if (DECL_ONE_ONLY (decl_node->decl))
{
DECL_COMDAT (node->decl) = 1;
DECL_COMDAT (node->decl) = DECL_COMDAT (decl_node->decl);
DECL_COMDAT_GROUP (node->decl) = DECL_COMDAT_GROUP (decl_node->decl);
if (DECL_ONE_ONLY (decl_node->decl) && !node->same_comdat_group)
{
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment