[flang] Defer all function result type processing
When a type specification appears in the prefix of a FUNCTION statement, defer its processing as late as possible so that any symbols in the tpe specification can be resolved in the function's scope to local declarations, including use-associated symbols. f18 was already doing this deferral in a limited form for derived types, and this patch makes it work for intrinsic type parameter values as well. In short, "real(kind(x)) function foo(x)" now works as it should. "As late as possible" means the end of the specification part, or the first appearance of the function result name in the specification part. Differential Revision: https://reviews.llvm.org/D123705
Loading
Please sign in to comment