Commit 0987ffe7 by Jan Hubicka Committed by Jan Hubicka

ipa.c (comdat_can_be_unshared_p_1): C++ constructors and destructors can be unshared.


	* ipa.c (comdat_can_be_unshared_p_1): C++ constructors and destructors
	can be unshared.

From-SVN: r202001
parent befe8647
2013-08-26 Jan Hubicka <jh@suse.cz>
* ipa.c (comdat_can_be_unshared_p_1): C++ constructors and destructors
can be unshared.
2013-08-26 Joern Rennecke <joern.rennecke@embecosm.com>
* reload.c (find_valid_class): Allow classes that do not include
......
......@@ -574,9 +574,13 @@ static bool
comdat_can_be_unshared_p_1 (symtab_node node)
{
/* When address is taken, we don't know if equality comparison won't
break eventually. Exception are virutal functions and vtables,
where this is not possible by language standard. */
break eventually. Exception are virutal functions, C++
constructors/destructors and vtables, where this is not possible by
language standard. */
if (!DECL_VIRTUAL_P (node->symbol.decl)
&& (TREE_CODE (node->symbol.decl) != FUNCTION_DECL
|| (!DECL_CXX_CONSTRUCTOR_P (node->symbol.decl)
&& !DECL_CXX_DESTRUCTOR_P (node->symbol.decl)))
&& address_taken_from_non_vtable_p (node))
return false;
......
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