Re: Fix an ICE found in PR93686

2020-04-07 Thread Fritz Reese via Gcc-patches
On Mon, Apr 6, 2020 at 5:47 PM Steve Kargl
 wrote:
[...]
> BTW, if you haven't committed the degree trig functions,
> then I think you should to get the fixes in for 10.1.

Roger that.

---
Fritz


Re: Fix an ICE found in PR93686

2020-04-06 Thread Steve Kargl via Gcc-patches
On Mon, Apr 06, 2020 at 04:10:24PM -0400, Fritz Reese wrote:
> On Sat, Apr 4, 2020 at 2:58 PM Steve Kargl via Fortran
>  wrote:
> >
> > This patch fixes the ICE found in PR93686.
> >
> >
> > Index: gcc/fortran/decl.c
> > ===
> > --- gcc/fortran/decl.c  (revision 280157)
> > +++ gcc/fortran/decl.c  (working copy)
> > @@ -696,6 +696,10 @@ gfc_match_data (void)
> >   /* F2008:C567 (R536) A data-i-do-object or a variable that appears
> >  as a data-stmt-object shall not be an object designator in 
> > which
> >  a pointer appears other than as the entire rightmost part-ref. 
> >  */
> > + if (!e->ref && e->ts.type == BT_DERIVED
> > + && e->symtree->n.sym->attr.pointer)
> > +   goto partref;
> > +
> >   ref = e->ref;
> >   if (e->symtree->n.sym->ts.type == BT_DERIVED
> >   && e->symtree->n.sym->attr.pointer
> >
> > --
> > Steve
> 
> LGTM, thanks for the patch. I will commit along with the testcases from the 
> PR.
> 
Thanks.  For reference, my original code did not check
the left-most partref for the pointer attribute.  This
patch implements this check.

BTW, if you haven't committed the degree trig functions, 
then I think you should to get the fixes in for 10.1.

-- 
Steve


Re: Fix an ICE found in PR93686

2020-04-06 Thread Fritz Reese via Gcc-patches
On Sat, Apr 4, 2020 at 2:58 PM Steve Kargl via Fortran
 wrote:
>
> This patch fixes the ICE found in PR93686.
>
>
> Index: gcc/fortran/decl.c
> ===
> --- gcc/fortran/decl.c  (revision 280157)
> +++ gcc/fortran/decl.c  (working copy)
> @@ -696,6 +696,10 @@ gfc_match_data (void)
>   /* F2008:C567 (R536) A data-i-do-object or a variable that appears
>  as a data-stmt-object shall not be an object designator in which
>  a pointer appears other than as the entire rightmost part-ref.  
> */
> + if (!e->ref && e->ts.type == BT_DERIVED
> + && e->symtree->n.sym->attr.pointer)
> +   goto partref;
> +
>   ref = e->ref;
>   if (e->symtree->n.sym->ts.type == BT_DERIVED
>   && e->symtree->n.sym->attr.pointer
>
> --
> Steve

LGTM, thanks for the patch. I will commit along with the testcases from the PR.

---
Fritz