aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Hubicka <hubicka@ucw.cz>2016-01-19 12:59:58 +0100
committerJan Hubicka <hubicka@gcc.gnu.org>2016-01-19 11:59:58 +0000
commite49d321f033c35d907d9d3eb339efaa6a8ba1e52 (patch)
treefdaa2323b4b934afcea00464272b58b00616b05d
parente9191ad3ab89826936060c5e13800ce6be4f650c (diff)
downloadgcc-e49d321f033c35d907d9d3eb339efaa6a8ba1e52.zip
gcc-e49d321f033c35d907d9d3eb339efaa6a8ba1e52.tar.gz
gcc-e49d321f033c35d907d9d3eb339efaa6a8ba1e52.tar.bz2
re PR lto/69136 (ICE in lto_symtab_prevailing_virtual_decl, at lto/lto-symtab.c:991)
PR lto/69136 * lto-symtab.c (lto_symtab_prevailing_virtual_decl): Abstract decls have no assemblernames. * g++.dg/torture/pr69136.C: New testcase. From-SVN: r232553
-rw-r--r--gcc/lto/ChangeLog6
-rw-r--r--gcc/lto/lto-symtab.c2
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/g++.dg/torture/pr69136.C6
4 files changed, 19 insertions, 0 deletions
diff --git a/gcc/lto/ChangeLog b/gcc/lto/ChangeLog
index 430dcfe..952ebd4 100644
--- a/gcc/lto/ChangeLog
+++ b/gcc/lto/ChangeLog
@@ -1,3 +1,9 @@
+2016-01-19 Jan Hubicka <hubicka@ucw.cz>
+
+ PR lto/69136
+ * lto-symtab.c (lto_symtab_prevailing_virtual_decl): Abstract
+ decls have no assemblernames.
+
2016-01-19 Martin Liska <mliska@suse.cz>
Martin Jambor <mjambor@suse.cz>
diff --git a/gcc/lto/lto-symtab.c b/gcc/lto/lto-symtab.c
index b22dea8..94b919b 100644
--- a/gcc/lto/lto-symtab.c
+++ b/gcc/lto/lto-symtab.c
@@ -990,6 +990,8 @@ lto_symtab_merge_symbols (void)
tree
lto_symtab_prevailing_virtual_decl (tree decl)
{
+ if (DECL_ABSTRACT_P (decl))
+ return decl;
gcc_checking_assert (!type_in_anonymous_namespace_p (DECL_CONTEXT (decl))
&& DECL_ASSEMBLER_NAME_SET_P (decl));
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 6f9a2a6..d80aaa6 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,5 +1,10 @@
2016-01-19 Jan Hubicka <hubicka@ucw.cz>
+ PR lto/69136
+ * g++.dg/torture/pr69136.C: New testcase.
+
+2016-01-19 Jan Hubicka <hubicka@ucw.cz>
+
PR lto/69133
* g++.dg/lto/pr69133_0.C: New testcase.
* g++.dg/lto/pr69133_1.C: New testcase.
diff --git a/gcc/testsuite/g++.dg/torture/pr69136.C b/gcc/testsuite/g++.dg/torture/pr69136.C
new file mode 100644
index 0000000..a9c6236
--- /dev/null
+++ b/gcc/testsuite/g++.dg/torture/pr69136.C
@@ -0,0 +1,6 @@
+// { dg-do compile }
+class GrBufferAllocPool {
+ virtual ~GrBufferAllocPool();
+};
+GrBufferAllocPool::~GrBufferAllocPool() { static long a; }
+