On Thu, Sep 26, 2019 at 4:05 AM Alexandre Oliva <ol...@adacore.com> wrote:
>
> On Sep 13, 2019, Richard Biener <richard.guent...@gmail.com> wrote:
>
> > On Fri, Sep 13, 2019 at 1:32 AM Alexandre Oliva <ol...@adacore.com> wrote:
> >> On Sep 12, 2019, Richard Biener <richard.guent...@gmail.com> wrote:
>
> >> > So - maybe we can have the patch a bit cleaner by adding
> >> > a flag to add_type_attribute saying we only want it if it's
> >> > different from that already present (on the specification DIE)?
>
> >> That's exactly what I meant completing_type_p to check.  Do you mean it
> >> should be stricter, do it more cheaply, or what?
>
> > I meant to do it more cheaply
>
> How?  If it's the same type, lookup will find the DIE and be done with
> it.  If it's not, we'll want to build a new DIE anyway.  Where
> computation is there to avoid that is not already avoided?
>
> > also the name completing_type_p is
> > misleading IMHO since it simply checks (re-)creating the type DIE
> > will yield a different one
>
> True.  The expectation is that the type of a decl will not transition
> from complete to incomplete.  different_type_p would be more accurate
> for unexpected frontends that behaved so weirdly, but not quite as
> intuitive as to the intent.  I still like completing_type_p better, but
> if you insist, I'll change it.  Bonus points for a better name ;-)

Heh, I don't have one - which usually makes me simply inline the
beast into the single caller :P

Maybe simply have_new_type_for_decl_with_old_die_p?
Or new_type_for_die_p?

> > sure how that would look like (create a new variable DIE and
> > splice out "common" parts into an abstract DIE used by
> > both the old and the new DIE?)
>
> In my exhaustive verification of all hits of completing_type_p in an
> all-languages bootstrap, we had either a new DIE for the outermost array
> type, now with bounds, sharing the remaining array dimensions; an
> alternate symbolic name ultimately referring to the same type
> definition; or an extra const-qualifying DIE for a const array type
> whose base type is already const-qualified.  None of these seemed
> excessive to me, though the last one might be desirable and not too hard
> to avoid.
>
> I haven't seen any case of transitioning to less-defined types.

Yeah, that would be surprising indeed.

The patch is OK with using new_type_for_die_p.

Thanks,
Richard.

> --
> Alexandre Oliva, freedom fighter  he/him   https://FSFLA.org/blogs/lxo
> Be the change, be Free!        FSF VP & FSF Latin America board member
> GNU Toolchain Engineer                        Free Software Evangelist
> Hay que enGNUrecerse, pero sin perder la terGNUra jamás - Che GNUevara

Reply via email to