[flang-commits] [flang] 7453d76 - [flang] Silence inappropriate error message (#120614)
via flang-commits
flang-commits at lists.llvm.org
Wed Jan 8 13:11:26 PST 2025
Author: Peter Klausler
Date: 2025-01-08T13:11:22-08:00
New Revision: 7453d7645c366e3b6b141789b49f10dc603a6abd
URL: https://github.com/llvm/llvm-project/commit/7453d7645c366e3b6b141789b49f10dc603a6abd
DIFF: https://github.com/llvm/llvm-project/commit/7453d7645c366e3b6b141789b49f10dc603a6abd.diff
LOG: [flang] Silence inappropriate error message (#120614)
A recent patch added better compatibility checking for actual procedure
arguments, but it has led to a few failures in the Fujitsu Fortran test
suite in cases of NULL() actual arguments being associated with dummy
procedure pointers. As is the case with dummy data pointers, these must
always be accepted.
Fixes Fujitsu Fortran test cases 0249_0023 through 0028 and 0387_0047.
Added:
Modified:
flang/lib/Semantics/expression.cpp
Removed:
################################################################################
diff --git a/flang/lib/Semantics/expression.cpp b/flang/lib/Semantics/expression.cpp
index c2eb17c1ac8e5b..4a986cb51b1b11 100644
--- a/flang/lib/Semantics/expression.cpp
+++ b/flang/lib/Semantics/expression.cpp
@@ -2536,6 +2536,15 @@ static bool CheckCompatibleArgument(bool isElemental,
return false;
},
[&](const characteristics::DummyProcedure &dummy) {
+ if ((dummy.attrs.test(
+ characteristics::DummyProcedure::Attr::Optional) ||
+ dummy.attrs.test(
+ characteristics::DummyProcedure::Attr::Pointer)) &&
+ IsBareNullPointer(expr)) {
+ // NULL() is compatible with any dummy pointer
+ // or optional dummy procedure.
+ return true;
+ }
if (!expr || !IsProcedurePointerTarget(*expr)) {
return false;
}
More information about the flang-commits
mailing list