On 7/10/26 7:24 AM, Paul Richard Thomas wrote:
Hi Jerry,

This looks good to me, with a couple of wee grumbles:

(1) +      /* Same fix-up, for the finalizer wrapper symbol.  */
These chunks are 346 lines apart. Entropy will not be increased by
repeating the first comment.

Will do.>
(2) s/CONTAINS'ed/contained/ :-)

Late night typing, what was I thinking! Fixed it last night and forgot to
redo the diff.


(3) Finally, since PR125051, which uncovered this one, was backported,
surely this patch should be backported too?

Will do.>
OK for mainline and backporting.

Thanks for the patch.

Paul

Thanks for the review.


On Fri, 10 Jul 2026 at 04:26, Jerry D <[email protected]> wrote:

I all, the attached patch regression tested on x86_64

I have not used the gfortran.dg/lto/ testsuite things so it took me a while to
come up with the test cases. Both are based on Andrew's original examples
provided in the PR.

OK for mainline?

I don't think we need to backport this. Let me know otherwise.

Regards,

Jerry
---
fortran: [PR126170] Fix LTO ICE in copy_function_or_variable

      A redundant USE of a module already visible via host association,
      written inside a contained procedure, caused gfortran's module
      reader to create a second copy of that module's derived
      type.

      PR fortran/126170

      gcc/fortran/ChangeLog:

              PR fortran/126170
              * class.cc (gfc_find_derived_vtab): Fix up a stale
              non-use-associated duplicate vtab symbol.
              (gfc_is_finalizable): Same fix-up, for the finalizer wrapper
              symbol.
              * module.cc (read_module): Skip re-importing a symbol already
              visible via host association from the same module.

      gcc/testsuite/ChangeLog:

              PR fortran/126170
              * gfortran.dg/lto/pr126170_0.f90: New test.
              * gfortran.dg/lto/pr126170_1.f90: New test.
---

Reply via email to