Hi Richi,

That's OK for master and as far back as you have the fortitude to go.

Thanks for the fix.

I agree that we should always pick up a canonical variant. When I finally
get "a minute or two" to fix the rather fundamental problems with PDTs, I
will make sure that this goes away. I am also curious about the time out -
I'll take a look.

Paul


On Tue, 3 Nov 2020 at 11:35, Richard Biener <rguent...@suse.de> wrote:

> This marks PDT types as needing structural comparison for TBAA
> if we didn't pick up a canonical variant (which we should IMHO
> always do).  This workaround fixes the gfortran.dg/pdt_14.f03
> fail which materializes as testsuite timeout which is quite
> annoying.
>
> Bootstrap / regtest pending on x86_64-unknown-linux-gnu.
>
> OK?
>
> 2020-11-03  Richard Biener  <rguent...@suse.de>
>
>         PR fortran/97652
> gcc/fortran
>         * trans-types.c (gfc_get_derived_type): When we didn't find
>         a canonical type mark it for structual equality.
> ---
>  gcc/fortran/trans-types.c | 2 ++
>  1 file changed, 2 insertions(+)
>
> diff --git a/gcc/fortran/trans-types.c b/gcc/fortran/trans-types.c
> index b7129dcbe6d..4643fff243f 100644
> --- a/gcc/fortran/trans-types.c
> +++ b/gcc/fortran/trans-types.c
> @@ -2647,6 +2647,8 @@ gfc_get_derived_type (gfc_symbol * derived, int
> codimen)
>        typenode = make_node (RECORD_TYPE);
>        TYPE_NAME (typenode) = get_identifier (derived->name);
>        TYPE_PACKED (typenode) = flag_pack_derived;
> +      if (!got_canonical)
> +       SET_TYPE_STRUCTURAL_EQUALITY (typenode);
>        derived->backend_decl = typenode;
>      }
>
> --
> 2.26.2
>


-- 
"If you can't explain it simply, you don't understand it well enough" -
Albert Einstein

Reply via email to