Hi Harald,

>
> Reviewing it properly is beyond me, but if nobody else volunteers,
>

I am not so sure that is right but your review is mightily helpful. I worry
that the logic in the handling of the gfc_ss's is not clear enough. Some
time, when feeling bored, I might try to refactor it.


> I'll just provide a few minor comments derived from playing with it,
> and let you decide to push or polish.
>
> In testcase class_transformational_2.f90 I recommend to "harden"
> the select type () blocks in check_result and check_result_a by e.g.
>
>       class default
>          stop stop_flag + 4
>
> so that wrong dynamic types are detected (I had fun with ifx... :).
>

Done.


> There are also unused declared variables (e.g. ss(:)), probably left
> overs.
>

All unused variable warnings have been suppressed. The 'atmp' warnings were
removed at trans-array.cc:1632 by adding:
  if (fcn_ss && fcn_ss->info && fcn_ss->info->class_container)
    {
      suppress_warning (desc);
      TREE_USED (desc) = 0;
    }


> I got an ICE compiling class_transformational_1.f90 with the following
> options:
>
> % gfc-15 class_transformational_1.f90 -O3 -fcheck=bounds
>
> Note that -O3 and -fcheck=bounds seem essential.  I get:
>
> Indeed, I can reproduce the ICE.


> I did not try to narrow that down further.  If you decide to push
> the submitted patch, and if you can reproduce the above, then please
> open a separate PR to track this.  Given what the patch resolves,
> this is not a real show-stopper, so you may go ahead.
>

Committed as r15-5897. I will be following up with a new PR for the ICE.

Thanks for the review.

Paul


>
> Thanks,
> Harald
>
> Am 29.11.24 um 23:21 schrieb Paul Richard Thomas:
> > Hi Harald,
> >
> > Sorry about that - it was the standard HEAD versus HEAD~ mistake.
> >
> > Thanks for pointing it out.
> >
> > Paul
> >
> >
> > On Fri, 29 Nov 2024 at 17:31, Harald Anlauf <anl...@gmx.de> wrote:
> >
> >> Hi Paul,
> >>
> >> the patch seems to contain stuff that has already been pushed
> >> (gcc/testsuite/gfortran.dg/pr117768.f90, and the chunks in
> >> class.cc and resolve.cc).  Can you please check?
> >>
> >> Cheers,
> >> Harald
> >>
> >> Am 29.11.24 um 17:34 schrieb Paul Richard Thomas:
> >>> Hi All,
> >>>
> >>> This patch was originally pushed as r15-2739. Subsequently memory
> faults
> >>> were found and so the patch was reverted. At the time, I could find
> where
> >>> the problem lay. This morning I had another look and found it almost
> >>> immediately :-)
> >>>
> >>> The fix is the 'gfc_resize_class_size_with_len' in the chunk '@@
> -1595,14
> >>> +1629,51 @@ gfc_trans_create_temp_array '. Without it,, half as much
> >> memory
> >>> as needed was being provided by the allocation and so accesses were
> >>> occurring outside the allocated space. Valgrind now reports no errors.
> >>>
> >>> Regression tests with flying colours - OK for mainline?
> >>>
> >>> Paul
> >>>
> >>
> >>
> >
>
>

Reply via email to