aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Biener <rguenther@suse.de>2019-08-12 11:02:21 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2019-08-12 11:02:21 +0000
commitb0dffed9dae9bd2d61292beb13038414270c03e5 (patch)
tree8b5ea30a93afc1827046ec5b5e6ae16f9ffed7c2 /gcc
parent8508ae1de0c80f65ca742681df7f2c065f9e4c4e (diff)
downloadgcc-b0dffed9dae9bd2d61292beb13038414270c03e5.zip
gcc-b0dffed9dae9bd2d61292beb13038414270c03e5.tar.gz
gcc-b0dffed9dae9bd2d61292beb13038414270c03e5.tar.bz2
re PR lto/91375 (ICE on valid code in subbinfo_with_vtable_at_offset at ipa-devirt.c:2760 since r256685)
2019-08-12 Richard Biener <rguenther@suse.de> PR lto/91375 * tree.c (free_lang_data_in_type): Do not free TYPE_BINFO dependent on flag_devirtualize. From-SVN: r274310
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/tree.c3
2 files changed, 7 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index c59df62..9f76712 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,11 @@
2019-08-12 Richard Biener <rguenther@suse.de>
+ PR lto/91375
+ * tree.c (free_lang_data_in_type): Do not free TYPE_BINFO dependent on
+ flag_devirtualize.
+
+2019-08-12 Richard Biener <rguenther@suse.de>
+
PR driver/91130
* lto-wrapper.c (get_options_from_collect_gcc_options): Remove
lang_mask option, always use CL_DRIVER.
diff --git a/gcc/tree.c b/gcc/tree.c
index 154ef3a..8f80012 100644
--- a/gcc/tree.c
+++ b/gcc/tree.c
@@ -5531,8 +5531,7 @@ free_lang_data_in_type (tree type, class free_lang_data_d *fld)
free_lang_data_in_binfo (TYPE_BINFO (type));
/* We need to preserve link to bases and virtual table for all
polymorphic types to make devirtualization machinery working. */
- if (!BINFO_VTABLE (TYPE_BINFO (type))
- || !flag_devirtualize)
+ if (!BINFO_VTABLE (TYPE_BINFO (type)))
TYPE_BINFO (type) = NULL;
}
}