summaryrefslogtreecommitdiff
path: root/gcc/lto
diff options
context:
space:
mode:
authorhubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>2014-08-14 23:30:46 +0000
committerhubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>2014-08-14 23:30:46 +0000
commit1df805e3d5311079c9fe4f65d80ef11aaa57b643 (patch)
tree4aece5efbbebf94d2b39aa6940862dedbf57f883 /gcc/lto
parentb34e07a1f86deec160736cecd8937eac9288916d (diff)
downloadgcc-1df805e3d5311079c9fe4f65d80ef11aaa57b643.tar.gz
* ipa-utils.h (compare_virtual_tables): Declare.
* ipa-devirt.c (odr_subtypes_equivalent_p): New function * lto-symtab.c (lto_varpool_replace_node): Call compare_virtual_tables. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@213990 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/lto')
-rw-r--r--gcc/lto/ChangeLog4
-rw-r--r--gcc/lto/lto-symtab.c4
2 files changed, 8 insertions, 0 deletions
diff --git a/gcc/lto/ChangeLog b/gcc/lto/ChangeLog
index 3483711e0db..2e3a1563775 100644
--- a/gcc/lto/ChangeLog
+++ b/gcc/lto/ChangeLog
@@ -1,3 +1,7 @@
+2014-08-14 Jan Hubicka <hubicka@ucw.cz>
+
+ * lto-symtab.c (lto_varpool_replace_node): Call compare_virtual_tables.
+
2014-08-14 Richard Biener <rguenther@suse.de>
PR lto/62067
diff --git a/gcc/lto/lto-symtab.c b/gcc/lto/lto-symtab.c
index 2332225afd4..aae865a0290 100644
--- a/gcc/lto/lto-symtab.c
+++ b/gcc/lto/lto-symtab.c
@@ -117,6 +117,10 @@ lto_varpool_replace_node (varpool_node *vnode,
&& vnode->decl != prevailing_node->decl)
DECL_INITIAL (vnode->decl) = error_mark_node;
+ /* Check and report ODR violations on virtual tables. */
+ if (DECL_VIRTUAL_P (vnode->decl) || DECL_VIRTUAL_P (prevailing_node->decl))
+ compare_virtual_tables (prevailing_node, vnode);
+
if (vnode->tls_model != prevailing_node->tls_model)
{
error_at (DECL_SOURCE_LOCATION (vnode->decl),