aboutsummaryrefslogtreecommitdiff
path: root/flang/lib/Semantics/resolve-names-utils.cpp
diff options
context:
space:
mode:
authorPeter Klausler <pklausler@nvidia.com>2023-08-02 13:41:40 -0700
committerPeter Klausler <pklausler@nvidia.com>2023-08-08 10:48:54 -0700
commit078b1c42f6c8bdad8aea2b99ac4b4ac79ca5665c (patch)
treebcbbe1870f1b00a35476368dda90f36f79e06fa6 /flang/lib/Semantics/resolve-names-utils.cpp
parentd325c5d00b148ae430b749817bb4182a4af4eeff (diff)
downloadllvm-078b1c42f6c8bdad8aea2b99ac4b4ac79ca5665c.zip
llvm-078b1c42f6c8bdad8aea2b99ac4b4ac79ca5665c.tar.gz
llvm-078b1c42f6c8bdad8aea2b99ac4b4ac79ca5665c.tar.bz2
[flang] Don't complain about implicitly-typed dummy arguments inherited into an IMPLICIT NONE submodule
When a module procedure's interface is defined in an ancestor (sub)module with an implicitly typed dummy argument, don't emit a bogus error in the separate module procedure later if its submodule has IMPLICIT NONE. Fixes llvm-test-suite/Fortran/gfortran/regression/submodule_26.f90. Differential Revision: https://reviews.llvm.org/D157335
Diffstat (limited to 'flang/lib/Semantics/resolve-names-utils.cpp')
-rw-r--r--flang/lib/Semantics/resolve-names-utils.cpp1
1 files changed, 1 insertions, 0 deletions
diff --git a/flang/lib/Semantics/resolve-names-utils.cpp b/flang/lib/Semantics/resolve-names-utils.cpp
index c3be572..2f8e577 100644
--- a/flang/lib/Semantics/resolve-names-utils.cpp
+++ b/flang/lib/Semantics/resolve-names-utils.cpp
@@ -917,6 +917,7 @@ void MapSubprogramToNewSymbols(const Symbol &oldSymbol, Symbol &newSymbol,
if (!dummyArg) {
newDetails.add_alternateReturn();
} else if (Symbol *copy{newScope.CopySymbol(*dummyArg)}) {
+ copy->set(Symbol::Flag::Implicit, false);
newDetails.add_dummyArg(*copy);
mappings->symbolMap[dummyArg] = copy;
}