Internal compiler error. ILM file: can't find intrinsic ..sqrt

The source of the bug is some kind of internal naming conflict between type(debug_t) :: debug and procedure(base_debug), deferred :: debug.

module base_m
  type debug_t
  end type debug_t
  type(debug_t) :: debug
  type, abstract :: base_t
  contains
    procedure(base_debug), deferred :: debug
  end type base_t
  abstract interface
    subroutine base_debug(this)
      import base_t
      class(base_t) :: this
    end subroutine base_debug
  end interface
end module base_m

module derived_m
  use base_m
  type, extends(base_t) :: derived_t
  contains
    procedure :: debug => derived_debug
  end type derived_t
contains
  subroutine derived_debug(this)
    class(derived_t) :: this
  end subroutine derived_debug
end module derived_m
$ nvfortran --version

nvfortran 26.1-0 64-bit target on x86-64 Linux -tp icelake-server 
NVIDIA Compilers and Tools
Copyright (c) 2026, NVIDIA CORPORATION & AFFILIATES.  All rights reserved.
$ nvfortran -c repro.F90 
ILM file: can't find intrinsic ..sqrt
NVFORTRAN-F-0000-Internal compiler error. Errors in ILM file       1  (repro.F90)

Hi henri.menke,

Thanks for the report and reproducing example!

I was able to reproduce the issue here and filed a problem report, TPR #38317. We’ll have engineering investigate.

I agree that it’s a likely some type of conflict between the two “debug” since changing the name of one or the other works around the error.

-Mat