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