https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117661

            Bug ID: 117661
           Summary: Possible inconsistency with ns traversals in
                    type-bound procedures
           Product: gcc
           Version: 14.2.1
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: fortran
          Assignee: unassigned at gcc dot gnu.org
          Reporter: rimvydas.jas at gmail dot com
  Target Milestone: ---

$ cat foo.f90 
module goo
use, intrinsic :: ieee_arithmetic, only : ieee_is_nan
include 'mpif.h'
  integer :: k
end module

module foo
use goo, only: ! nothing
contains
  subroutine used_foo
  end subroutine
end module

$ cat bar.F90 
module bar
#ifdef GLOBAL
use foo, only: ! nothing
#endif
  type :: ttt
  contains
    procedure, private, nopass :: init => ttt_init
  end type
contains
  subroutine ttt_init()
#ifndef GLOBAL
  use foo, only:
#endif
  end subroutine
end module

$ mpifort -Wall -Wextra -c foo.f90
$ gfortran-14 -Wall -Wextra -c -S bar.F90 && grep -E '(ret|ieee)' bar.s
        ret
        call    _gfortran_ieee_procedure_entry
        call    _gfortran_ieee_procedure_exit
        ret
$ gfortran-14 -Wall -Wextra -DGLOBAL -c -S bar.F90 && grep -E '(ret|ieee)'
bar.s
        ret
        ret

Reply via email to