From 9d8fc086d1482135169d992ca21b33efd651ba4f Mon Sep 17 00:00:00 2001 From: Jan Hubicka Date: Fri, 19 Sep 2014 04:04:20 +0200 Subject: re PR ipa/63298 (internal compiler error: in types_same_for_odr, at ipa-devirt.c:449 with LTO) PR lto/63298 * ipa-devirt.c (odr_subtypes_equivalent_p): Fix thinko in a condition. From-SVN: r215374 --- gcc/ipa-devirt.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'gcc/ipa-devirt.c') diff --git a/gcc/ipa-devirt.c b/gcc/ipa-devirt.c index 1480b29..0a11eb7 100644 --- a/gcc/ipa-devirt.c +++ b/gcc/ipa-devirt.c @@ -525,8 +525,10 @@ odr_subtypes_equivalent_p (tree t1, tree t2, hash_set *vi if (an1 != an2 || an1) return false; - /* For ODR types be sure to compare their names. */ - if ((odr_type_p (t1) && !odr_type_p (t2)) + /* For ODR types be sure to compare their names. + To support -wno-odr-type-merging we allow one type to be non-ODR + and other ODR even though it is a violation. */ + if ((odr_type_p (t1) && odr_type_p (t2)) || (TREE_CODE (t1) == RECORD_TYPE && TREE_CODE (t2) == RECORD_TYPE && TYPE_BINFO (t1) && TYPE_BINFO (t2) && polymorphic_type_binfo_p (TYPE_BINFO (t1)) -- cgit v1.1