! RUN: split-file %s %t
! RUN: bbc -emit-fir %t/mangling_mod_a.f90 -o - | FileCheck %s --check-prefix=FIR
! RUN: bbc -emit-fir %t/mangling_mod_b.f90 -o - | FileCheck %s --check-prefix=MANGLE
! RUN: bbc -emit-fir %t/mangling_mod_c.f90 -o - | FileCheck %s --check-prefix=MANGLE
! RUN: bbc -emit-fir %t/mangling_mod_d.f90 -o - | FileCheck %s --check-prefix=MANGLE
! FIR: module
! MANGLE: func.func private @_QPmy_sub(!fir.ref<i32>)
!--- mangling_mod_a.f90
module mangling_mod_a
interface
subroutine my_sub(a)
integer :: a
end subroutine my_sub
end interface
! Generic interface
interface my_sub
procedure :: my_sub
end interface
contains
end module mangling_mod_a
!--- mangling_mod_b.f90
module mangling_mod_b
use mangling_mod_a
contains
subroutine my_sub2(a)
integer :: a
call my_sub(a)
end subroutine my_sub2
end module mangling_mod_b
!--- mangling_mod_c.f90
module mangling_mod_c
use mangling_mod_b
contains
subroutine my_sub3(a)
integer :: a
call my_sub(a)
end subroutine my_sub3
end module mangling_mod_c
!--- mangling_mod_d.f90
module mangling_mod_d
use mangling_mod_b
use mangling_mod_c
contains
subroutine my_sub4(a)
integer :: a
call my_sub(a)
end subroutine my_sub4
end module mangling_mod_d