[Patch, fortran] PR83118 - [8/9/10/11 Regression] Bad intrinsic assignment of class(*) array component of derived type

Paul Richard Thomas paul.richard.thomas@gmail.com
Sat Dec 26 15:13:43 GMT 2020


Pushed to master as r11-6341-g0175d45d14b1f9ebc4c15ea5bafcda655c37fc35

I'll try to deal with the rest of the memory leaks over the next days.

Thanks

Paul

On Sat, 26 Dec 2020 at 09:04, Paul Richard Thomas <
paul.richard.thomas@gmail.com> wrote:

> Hi Thomas,
>
> Thanks for the review. You'll find answers to the questions below:
>
> On Fri, 25 Dec 2020 at 11:04, Thomas Koenig <tkoenig@netcologne.de> wrote:
>
>> First of all, merry Christmas everybody!
>>
>> Regarding the patch:
>>
>> > Regtests on FC33/x86_64 and the testcase is fixed with -m32. OK for
>> master?
>>
>> It's OK by me.
>>
>> There is just one piece of code that I don't understand:
>> ....snip....
>>
>
>
>> Could you maybe (for my personal education, and that of others who read
>> this code) add a comment what "lss = gfc_ss_terminator" tests, and why
>> it that one or the other post block is selected for adding the
>> deallocation?  I simply don't know what this idiom means.
>>
>
>  lss == gfc_ss_terminator tells us that the lhs is a scalar and so the
> scalarizer will not have generated a loop. Placing the deallocation of
> allocatable components inside a scalarizer loop will generally cause
> unintended outcomes :-)
>
> Look at the end of the section "Using pre-generated expressions" in
> https://gcc.gnu.org/wiki/GFortranScalarizer
>
> Regards
>
> Paul
>
>


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


More information about the Fortran mailing list