http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59473

--- Comment #2 from Jan Hubicka <hubicka at gcc dot gnu.org> ---
Here the ICE is because we test whether IconsetSelectItem contains
RealIconWidgetItem at offset 128

RealIconWidgetItem is base of IconsetSelectItem and bigger than 128 bits, so it
can not be true.  I am testing:
Index: ipa-devirt.c
===================================================================
--- ipa-devirt.c        (revision 205941)
+++ ipa-devirt.c        (working copy)
@@ -848,6 +848,10 @@
       if (TREE_CODE (type) == TREE_CODE (expected_type)
          && types_same_for_odr (type, expected_type))
        {
+         /* Type can not contain itself on an non-zero offset.  In that case
+            just give up.  */
+         if (offset != 0)
+           goto give_up;
          gcc_assert (offset == 0);
          return true;
        }

Reply via email to