Commit 1aeaf0f7 by Jakub Jelinek Committed by Jakub Jelinek

re PR tree-optimization/37095 (Trouble with covariant return)

	PR tree-optimization/37095
	* cgraph.c (cgraph_node): When creating new cgraph node after
	assembler_name_hash has been populated, record it in the hash
	table.

	* g++.dg/inherit/thunk9.C: New test.

From-SVN: r139887
parent 900e887f
2008-09-02 Jakub Jelinek <jakub@redhat.com>
PR tree-optimization/37095
* cgraph.c (cgraph_node): When creating new cgraph node after
assembler_name_hash has been populated, record it in the hash
table.
2008-09-01 Paul Brook <paul@codesourcery.com>
* doc/invoke.texi: Document -mword-relocations.
......
......@@ -453,7 +453,21 @@ cgraph_node (tree decl)
node->origin->nested = node;
node->master_clone = node;
}
if (assembler_name_hash)
{
void **aslot;
tree name = DECL_ASSEMBLER_NAME (decl);
aslot = htab_find_slot_with_hash (assembler_name_hash, name,
decl_assembler_name_hash (name),
INSERT);
/* We can have multiple declarations with same assembler name. For C++
it is __builtin_strlen and strlen, for instance. Do we need to
record them all? Original implementation marked just first one
so lets hope for the best. */
if (*aslot == NULL)
*aslot = node;
}
return node;
}
......
2008-09-02 Jakub Jelinek <jakub@redhat.com>
PR tree-optimization/37095
* g++.dg/inherit/thunk9.C: New test.
2008-09-01 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR fortran/37228
......
// PR tree-optimization/37095
// { dg-options "-O" }
struct A
{
virtual A *foo ();
};
struct B : virtual A
{
virtual B *foo () { return 0; }
};
B b;
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