mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-01-11 17:45:03 +08:00
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
This commit is contained in:
parent
900e887f6d
commit
1aeaf0f764
@ -1,3 +1,10 @@
|
|||||||
|
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>
|
2008-09-01 Paul Brook <paul@codesourcery.com>
|
||||||
|
|
||||||
* doc/invoke.texi: Document -mword-relocations.
|
* doc/invoke.texi: Document -mword-relocations.
|
||||||
|
14
gcc/cgraph.c
14
gcc/cgraph.c
@ -453,7 +453,21 @@ cgraph_node (tree decl)
|
|||||||
node->origin->nested = node;
|
node->origin->nested = node;
|
||||||
node->master_clone = 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;
|
return node;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,3 +1,8 @@
|
|||||||
|
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>
|
2008-09-01 Jerry DeLisle <jvdelisle@gcc.gnu.org>
|
||||||
|
|
||||||
PR fortran/37228
|
PR fortran/37228
|
||||||
|
14
gcc/testsuite/g++.dg/inherit/thunk9.C
Normal file
14
gcc/testsuite/g++.dg/inherit/thunk9.C
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
// PR tree-optimization/37095
|
||||||
|
// { dg-options "-O" }
|
||||||
|
|
||||||
|
struct A
|
||||||
|
{
|
||||||
|
virtual A *foo ();
|
||||||
|
};
|
||||||
|
|
||||||
|
struct B : virtual A
|
||||||
|
{
|
||||||
|
virtual B *foo () { return 0; }
|
||||||
|
};
|
||||||
|
|
||||||
|
B b;
|
Loading…
Reference in New Issue
Block a user