[flang] Improve error messages for procedures in expressions

Authored by tskeith on Aug 18 2020, 10:47 AM.


[flang] Improve error messages for procedures in expressions

When a procedure name was used on the RHS of an assignment we were not
reporting the error. When one was used in an expression the error
message wasn't very good (e.g. "Operands of + must be numeric; have
INTEGER(4) and untyped").

Detect these cases in ArgumentAnalyzer and emit better messages,
depending on whether the named procedure is a function or subroutine.

Procedure names may appear as actual arguments to function and
subroutine calls so don't report errors in those cases. That is the same
case where assumed type arguments are allowed, so rename isAssumedType_
to isProcedureCall_ and use that to decide if it is an error.

Differential Revision: https://reviews.llvm.org/D86107