diff options
Diffstat (limited to 'flang/lib/Semantics/check-call.cpp')
| -rw-r--r-- | flang/lib/Semantics/check-call.cpp | 6 | 
1 files changed, 4 insertions, 2 deletions
| diff --git a/flang/lib/Semantics/check-call.cpp b/flang/lib/Semantics/check-call.cpp index c51d40b..995deaa 100644 --- a/flang/lib/Semantics/check-call.cpp +++ b/flang/lib/Semantics/check-call.cpp @@ -914,7 +914,8 @@ static void CheckExplicitDataArg(const characteristics::DummyDataObject &dummy,              dummyName);        }        // INTENT(OUT) and INTENT(IN OUT) cases are caught elsewhere -    } else { +    } else if (!actualIsAllocatable && +        !dummy.ignoreTKR.test(common::IgnoreTKR::Pointer)) {        messages.Say(            "ALLOCATABLE %s must be associated with an ALLOCATABLE actual argument"_err_en_US,            dummyName); @@ -929,7 +930,8 @@ static void CheckExplicitDataArg(const characteristics::DummyDataObject &dummy,              dummy, actual, *scope,              /*isAssumedRank=*/dummyIsAssumedRank, actualIsPointer);        } -    } else if (!actualIsPointer) { +    } else if (!actualIsPointer && +        !dummy.ignoreTKR.test(common::IgnoreTKR::Pointer)) {        messages.Say(            "Actual argument associated with POINTER %s must also be POINTER unless INTENT(IN)"_err_en_US,            dummyName); | 
