! RUN: %flang_fc1 -fdebug-unparse %s 2>&1 | FileCheck %s | |
module m1 | |
type foo | |
integer n | |
integer :: m = 1 | |
end type | |
end | |
module m2 | |
use m1 | |
interface foo | |
module procedure f1 | |
end interface | |
contains | |
type(foo) function f1(a) | |
real, intent(in) :: a | |
f1%n = a | |
f1%m = 2 | |
end | |
end | |
module m3 | |
use m2 | |
interface foo | |
module procedure f2 | |
end interface | |
contains | |
type(foo) function f2(a) | |
double precision, intent(in) :: a | |
f2%n = a | |
f2%m = 3 | |
end | |
end | |
program main | |
use m3 | |
type(foo) x | |
!CHECK: foo(n=1_4,m=1_4) | |
x = foo(1) | |
print *, x | |
!CHECK: f1(2._4) | |
x = foo(2.) | |
print *, x | |
!CHECK: f2(3._8) | |
x = foo(3.d0) | |
print *, x | |
end |