diff options
author | hubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4> | 2014-08-14 23:30:46 +0000 |
---|---|---|
committer | hubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4> | 2014-08-14 23:30:46 +0000 |
commit | 1df805e3d5311079c9fe4f65d80ef11aaa57b643 (patch) | |
tree | 4aece5efbbebf94d2b39aa6940862dedbf57f883 /gcc/lto | |
parent | b34e07a1f86deec160736cecd8937eac9288916d (diff) | |
download | gcc-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/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/lto/lto-symtab.c | 4 |
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), |