1*4ed90920SRoger Ferrer Ibáñez! RUN: split-file %s %t 2*4ed90920SRoger Ferrer Ibáñez! RUN: bbc -emit-fir %t/mangling_mod_a.f90 -o - | FileCheck %s --check-prefix=FIR 3*4ed90920SRoger Ferrer Ibáñez! RUN: bbc -emit-fir %t/mangling_mod_b.f90 -o - | FileCheck %s --check-prefix=MANGLE 4*4ed90920SRoger Ferrer Ibáñez! RUN: bbc -emit-fir %t/mangling_mod_c.f90 -o - | FileCheck %s --check-prefix=MANGLE 5*4ed90920SRoger Ferrer Ibáñez! RUN: bbc -emit-fir %t/mangling_mod_d.f90 -o - | FileCheck %s --check-prefix=MANGLE 6*4ed90920SRoger Ferrer Ibáñez 7*4ed90920SRoger Ferrer Ibáñez! FIR: module 8*4ed90920SRoger Ferrer Ibáñez! MANGLE: func.func private @_QPmy_sub(!fir.ref<i32>) 9*4ed90920SRoger Ferrer Ibáñez 10*4ed90920SRoger Ferrer Ibáñez!--- mangling_mod_a.f90 11*4ed90920SRoger Ferrer Ibáñezmodule mangling_mod_a 12*4ed90920SRoger Ferrer Ibáñez interface 13*4ed90920SRoger Ferrer Ibáñez subroutine my_sub(a) 14*4ed90920SRoger Ferrer Ibáñez integer :: a 15*4ed90920SRoger Ferrer Ibáñez end subroutine my_sub 16*4ed90920SRoger Ferrer Ibáñez end interface 17*4ed90920SRoger Ferrer Ibáñez 18*4ed90920SRoger Ferrer Ibáñez ! Generic interface 19*4ed90920SRoger Ferrer Ibáñez interface my_sub 20*4ed90920SRoger Ferrer Ibáñez procedure :: my_sub 21*4ed90920SRoger Ferrer Ibáñez end interface 22*4ed90920SRoger Ferrer Ibáñez contains 23*4ed90920SRoger Ferrer Ibáñezend module mangling_mod_a 24*4ed90920SRoger Ferrer Ibáñez 25*4ed90920SRoger Ferrer Ibáñez!--- mangling_mod_b.f90 26*4ed90920SRoger Ferrer Ibáñezmodule mangling_mod_b 27*4ed90920SRoger Ferrer Ibáñez use mangling_mod_a 28*4ed90920SRoger Ferrer Ibáñez 29*4ed90920SRoger Ferrer Ibáñez contains 30*4ed90920SRoger Ferrer Ibáñez subroutine my_sub2(a) 31*4ed90920SRoger Ferrer Ibáñez integer :: a 32*4ed90920SRoger Ferrer Ibáñez call my_sub(a) 33*4ed90920SRoger Ferrer Ibáñez end subroutine my_sub2 34*4ed90920SRoger Ferrer Ibáñez 35*4ed90920SRoger Ferrer Ibáñezend module mangling_mod_b 36*4ed90920SRoger Ferrer Ibáñez 37*4ed90920SRoger Ferrer Ibáñez!--- mangling_mod_c.f90 38*4ed90920SRoger Ferrer Ibáñezmodule mangling_mod_c 39*4ed90920SRoger Ferrer Ibáñez use mangling_mod_b 40*4ed90920SRoger Ferrer Ibáñez 41*4ed90920SRoger Ferrer Ibáñez contains 42*4ed90920SRoger Ferrer Ibáñez subroutine my_sub3(a) 43*4ed90920SRoger Ferrer Ibáñez integer :: a 44*4ed90920SRoger Ferrer Ibáñez 45*4ed90920SRoger Ferrer Ibáñez call my_sub(a) 46*4ed90920SRoger Ferrer Ibáñez end subroutine my_sub3 47*4ed90920SRoger Ferrer Ibáñezend module mangling_mod_c 48*4ed90920SRoger Ferrer Ibáñez 49*4ed90920SRoger Ferrer Ibáñez!--- mangling_mod_d.f90 50*4ed90920SRoger Ferrer Ibáñezmodule mangling_mod_d 51*4ed90920SRoger Ferrer Ibáñez use mangling_mod_b 52*4ed90920SRoger Ferrer Ibáñez use mangling_mod_c 53*4ed90920SRoger Ferrer Ibáñez 54*4ed90920SRoger Ferrer Ibáñez contains 55*4ed90920SRoger Ferrer Ibáñez subroutine my_sub4(a) 56*4ed90920SRoger Ferrer Ibáñez integer :: a 57*4ed90920SRoger Ferrer Ibáñez 58*4ed90920SRoger Ferrer Ibáñez call my_sub(a) 59*4ed90920SRoger Ferrer Ibáñez end subroutine my_sub4 60*4ed90920SRoger Ferrer Ibáñezend module mangling_mod_d 61