diff options
author | Jason Merrill <jason@redhat.com> | 2014-07-16 20:34:02 -0400 |
---|---|---|
committer | Jason Merrill <jason@gcc.gnu.org> | 2014-07-16 20:34:02 -0400 |
commit | c6f884c0e075196f9770f466fec2a2e507a1c909 (patch) | |
tree | 6d369338ec0b7df748d9b91437361c0aa0a0c991 /gcc | |
parent | 5005cc79c7ec5e7be909c8ed651ee5b26732cee8 (diff) | |
download | gcc-c6f884c0e075196f9770f466fec2a2e507a1c909.zip gcc-c6f884c0e075196f9770f466fec2a2e507a1c909.tar.gz gcc-c6f884c0e075196f9770f466fec2a2e507a1c909.tar.bz2 |
re PR c++/61623 (ICE: verify_symtab failed: Two symbols with same comdat_group are not linked by the same_comdat_group list.)
PR c++/61623
* symtab.c (symtab_remove_from_same_comdat_group): Also
set_comdat_group to NULL_TREE.
(verify_symtab): Fix diagnostic.
From-SVN: r212705
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/symtab.c | 3 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/opt/declone2.C | 10 |
3 files changed, 19 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index f3a404f..66ea5a9 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2014-07-17 Jason Merrill <jason@redhat.com> + + PR c++/61623 + * symtab.c (symtab_remove_from_same_comdat_group): Also + set_comdat_group to NULL_TREE. + (verify_symtab): Fix diagnostic. + 2014-07-16 David Wohlferd <dw@LimeGreenSocks.com> PR target/61662 diff --git a/gcc/symtab.c b/gcc/symtab.c index 3a59935..0050573 100644 --- a/gcc/symtab.c +++ b/gcc/symtab.c @@ -314,6 +314,7 @@ symtab_remove_from_same_comdat_group (symtab_node *node) else prev->same_comdat_group = node->same_comdat_group; node->same_comdat_group = NULL; + node->set_comdat_group (NULL_TREE); } } @@ -1217,7 +1218,7 @@ verify_symtab (void) { error ("Two symbols with same comdat_group are not linked by the same_comdat_group list."); dump_symtab_node (stderr, *entry); - dump_symtab_node (stderr, s); + dump_symtab_node (stderr, node); internal_error ("verify_symtab failed"); } } diff --git a/gcc/testsuite/g++.dg/opt/declone2.C b/gcc/testsuite/g++.dg/opt/declone2.C new file mode 100644 index 0000000..e725d8e --- /dev/null +++ b/gcc/testsuite/g++.dg/opt/declone2.C @@ -0,0 +1,10 @@ +// PR c++/61623 +// { dg-options "-Os" } + +struct C {}; +struct B : virtual C {}; +struct A : B { + A (int) {} +}; + +A a (0); |