Skip to content

Commit a7eaae4

Browse files
authored
[Flang] Fix to the module procedure interface block ignoring implicit… (#85735)
… of host scoping unit. Fix as proposed by @thtsikas [here ](11d07d9#commitcomment-139798026).
1 parent fe84369 commit a7eaae4

File tree

2 files changed

+5
-3
lines changed

2 files changed

+5
-3
lines changed

flang/lib/Semantics/resolve-names.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4432,7 +4432,7 @@ Symbol &SubprogramVisitor::PushSubprogramScope(const parser::Name &name,
44324432
CHECK(context().HasError(genericSymbol));
44334433
}
44344434
}
4435-
set_inheritFromParent(false);
4435+
set_inheritFromParent(hasModulePrefix);
44364436
}
44374437
if (Symbol * found{FindSymbol(name)};
44384438
found && found->has<HostAssocDetails>()) {

flang/test/Semantics/separate-mp05.f90

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,10 @@ module m
77
!DEF: /m/smp MODULE, PUBLIC, PURE (Function) Subprogram REAL(4)
88
!DEF: /m/smp/f EXTERNAL, PURE (Function) Subprogram REAL(4)
99
!DEF: /m/smp/x INTENT(IN) ObjectEntity REAL(4)
10-
!DEF: /m/smp/res (Implicit) ObjectEntity REAL(4)
10+
!DEF: /m/smp/res ObjectEntity REAL(4)
1111
pure module function smp(f, x) result(res)
12+
!REF: /m/smp/res
13+
real res
1214
interface
1315
!REF: /m/smp/f
1416
!DEF: /m/smp/f/x INTENT(IN) ObjectEntity REAL(4)
@@ -32,7 +34,7 @@ pure function f(x) result(r)
3234
contains
3335
!DEF: /m/sm/smp MODULE, PUBLIC, PURE (Function) Subprogram REAL(4)
3436
module procedure smp
35-
!DEF: /m/sm/smp/res (Implicit) ObjectEntity REAL(4)
37+
!DEF: /m/sm/smp/res ObjectEntity REAL(4)
3638
!DEF: /m/sm/smp/f EXTERNAL, PURE (Function) Subprogram REAL(4)
3739
!DEF: /m/sm/smp/x INTENT(IN) ObjectEntity REAL(4)
3840
res = f(x)

0 commit comments

Comments
 (0)