https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84044

--- Comment #5 from Martin Liška <marxin at gcc dot gnu.org> ---
(In reply to Richard Biener from comment #4)
> (In reply to Martin Liška from comment #3)
> > Fixed on trunk by Richi's r256685. Is it intentional Richi that the revision
> > should fix such situations?
> 
> Not really.  It means that the following hunk removes too many TYPE_BINFOs
> I guess?
> 
> @@ -5150,15 +5145,9 @@ free_lang_data_in_type (tree type)
>         {
>           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.
> -            Debug output cares only about bases, but output also
> -            virtual table pointers so merging of -fdevirtualize and
> -            -fno-devirtualize units is easier.  */
> -         if ((!BINFO_VTABLE (TYPE_BINFO (type))
> -              || !flag_devirtualize)
> -             && ((!BINFO_N_BASE_BINFOS (TYPE_BINFO (type))
> -                  && !BINFO_VTABLE (TYPE_BINFO (type)))
> -                 || debug_info_level != DINFO_LEVEL_NONE))
> +            polymorphic types to make devirtualization machinery working. 
> */
> +         if (!BINFO_VTABLE (TYPE_BINFO (type))
> +             || !flag_devirtualize)
>             TYPE_BINFO (type) = NULL;
>         }
>      }

Reverting this hunk makes the warning visible again.

Reply via email to