Re: [PATCH][regression][OpenMP][PR120286] Double free detected when using openmp

Jerry D <[email protected]>
Newsgroups gmane.comp.gcc.patches,gmane.comp.gcc.fortran
Message-ID <[email protected]>
On 3/17/26 9:44 AM, Tobias Burnus wrote:
> Hi Jerry,

--- snip ---

I have the patch backported to 15 as follows. I used 'git gcc-backport' on the 
two patches followed by 'git rebase -i' with a squash and edit of the commit log.

I plan to commit later today

Best regards.

Jerry


commit 4fc13e39f36d07658d6609ee7aa48d636130373a (HEAD -> gcc15)
Author: Christopher Albert <[email protected]>
Date:   Tue Mar 10 20:59:48 2026 +0100

     fortran: Preserve scalar class pointers in OpenMP privatization [PR120286]

     OpenMP privatization currently treats scalar class pointers like owned
     polymorphic class objects.  In the worker cleanup for private/firstprivate
     class pointers, the generated code finalizes and frees ptr._data even though
     the clause only copied pointer association status from a shared target.

     Fix this in gfc_omp_clause_copy_ctor and gfc_omp_clause_dtor by unwrapping
     saved descriptors first and by recognizing class-pointer container types
     locally in those hooks.  That keeps scalar class pointers on the
     association-only path without changing the broader polymorphic mapping
     classification used for OpenMP warnings and deep mapping.

     Add a runtime regression test for the original private(ptr) crash plus a
     firstprivate(ptr) association check.

     gcc/fortran/ChangeLog:

             PR fortran/120286
             * trans-openmp.cc (gfc_is_class_pointer_type): New helper.
             (gfc_omp_clause_copy_ctor): Unwrap saved descriptors before
             deciding whether privatization should preserve only pointer
             association.  Handle scalar class pointers on that path too.
             (gfc_omp_clause_dtor): Likewise.

     libgomp/ChangeLog:

             * testsuite/libgomp.fortran/pr120286.f90: New test.

     Signed-off-by: Christopher Albert <[email protected]>

     (cherry picked from commit 60fbabc1a182cca77d14c68a1b623c554310d135)
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.