diff options
author | Jan Hubicka <hubicka@ucw.cz> | 2014-08-15 01:30:46 +0200 |
---|---|---|
committer | Jan Hubicka <hubicka@gcc.gnu.org> | 2014-08-14 23:30:46 +0000 |
commit | 56b1f114de93c27600b9b295ff7efcf9caedfc72 (patch) | |
tree | 4aece5efbbebf94d2b39aa6940862dedbf57f883 /gcc/lto/lto-symtab.c | |
parent | aa0a659ca69cf092fcfb6ebb58a749b63a04be48 (diff) | |
download | gcc-56b1f114de93c27600b9b295ff7efcf9caedfc72.zip gcc-56b1f114de93c27600b9b295ff7efcf9caedfc72.tar.gz gcc-56b1f114de93c27600b9b295ff7efcf9caedfc72.tar.bz2 |
ipa-utils.h (compare_virtual_tables): Declare.
* 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.
From-SVN: r213990
Diffstat (limited to 'gcc/lto/lto-symtab.c')
-rw-r--r-- | gcc/lto/lto-symtab.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/gcc/lto/lto-symtab.c b/gcc/lto/lto-symtab.c index 2332225..aae865a 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), |