NVFORTRAN-S-0000-Internal compiler error. check_member: member arrived with wrong derived type

Hi,
The following code does not compile with nvfortran 24.5 but it does with gfortran (9.5):

module Mod_OneToAllLoop
   implicit none
    type :: OneToAllBuffer
      procedure(FinalizeOneToAll), pointer :: Finalize
   end type

   type :: OneToAllLoop
      !Buffer
      type(OneToAllBuffer) :: Buffer
   end type

   contains

    subroutine FinalizeOneToAll(a)
      implicit none
      class(OneToAllBuffer) :: a
   end subroutine

   subroutine LoopOneToAll(a)
      implicit none
      class(OneToAllLoop) :: a
      a%Buffer%Finalize => FinalizeOneToAll
      !Finalize Buffer
      call a%Buffer%Finalize
   end subroutine
end module

compiled with:

nvfortran Mod_OneToAllLoop.f90 -c

it returns:

NVFORTRAN-S-0000-Internal compiler error. check_member: member arrived with wrong derived type     633  (Mod_OneToAllLoop.f90: 24)
  0 inform,   0 warnings,   1 severes, 0 fatal for looponetoall

Hi joan.baiges - Thanks for bringing this to our attention! I’ll get this reported to engineering for you. After I get it reported, I’ll give the TPR# that we use to track it, and then when it gets fixed, I’ll reach out to you here and let you know that it’ll be fixed in whatever release that it will occur in.

joan.baiges - this is now reported to engineering as report #35943. This is very clearly a bug and I’ll update you when I hear from engineering. Thanks again for bringing this to our attention!

@joan.baiges - I can confirm that this has been fixed in our latest release, NVHPC 24.7. Thanks for bringing this to our attention and please feel free to bring any other issues you observe to our attention!