Re: [Patch, fortran] PR126205 - A coarray allocated in a team is not being automatically deallocated
Jerry D <[email protected]> Fri, 24 Jul 2026 09:43:16 -0700
| Newsgroups | gmane.comp.gcc.patches,gmane.comp.gcc.fortran |
|---|---|
| Message-ID | <[email protected]> |
On 7/24/26 8:18 AM, Paul Richard Thomas wrote:
> Hello All,
> From John Reid's "Summary_of_Fortran_2018":
>
> 3.5 Coarrays allocated in teams
>
> ....snip....
>
> In Fortran 2018, synchronization is now across the team, of course. Symmetric
> memory is maintained within teams by requiring that
>
> 1. any allocatable coarray that is allocated before entry to a change team
> construct remains allocated during the execution of the construct and
> 2. any allocatable coarray that becomes allocated within a change team construct
> and is still allocated when the construct is left is automatically deallocated,
> even if it has the save attribute.
>
> ....more snips....
>
> Requirement 2 is not yet implemented in gfortran. The attachment does the job.
>
> Regression tested on FC44/x86_64 - OK for mainline and eventual backporting to
> 16-branch?
>
> Paul
>
This looks OK to go Paul.
The only question I have in here:
+ {
+ dealloc = get_guarded_dealloc (gfc_current_ns, e);
+ if (dealloc)
+ {
+ dealloc->next = last_stmt->next;
+ last_stmt->next = dealloc;
+ break;
+ }
Can dealloc ever be NULL? or are you only being safe here?
Thanks for the work!
Jerry