-// Copyright (c) 2018, NVIDIA CORPORATION. All rights reserved.
+// Copyright (c) 2018-2019, NVIDIA CORPORATION. All rights reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
Put(')'), Walk(", ", std::get<std::list<ProcAttrSpec>>(x.t), ", ");
Put(" :: "), Walk(std::get<std::list<ProcDecl>>(x.t), ", ");
}
+ void Unparse(const ProcInterface &x) { // R1513
+ std::visit(
+ common::visitors{
+ [&](const DeclarationTypeSpec &d) {
+ std::visit(
+ common::visitors{
+ [&](const IntrinsicTypeSpec &t) {
+ // Emit TYPE(REAL) to ensure no conflict with a symbol
+ // REAL
+ Word("TYPE("), Walk(t), Word(")");
+ },
+ [&](const auto &t) { Walk(t); },
+ },
+ d.u);
+ },
+ [&](const Name &n) { Walk(n); },
+ },
+ x.u);
+ }
void Unparse(const ProcDecl &x) { // R1515
Walk(std::get<Name>(x.t));
Walk(" => ", std::get<std::optional<ProcPointerInit>>(x.t));
procedure(logical), pointer, nopass :: p3 => nested2
!DEF: /module1/derived1/p4 NOPASS, POINTER ProcEntity LOGICAL(4)
!DEF: /module1/nested3 PUBLIC Subprogram
- procedure(logical(kind=4)), pointer, nopass :: p4 => nested3
+ procedure(type(logical(kind=4))), pointer, nopass :: p4 => nested3
!DEF: /module1/derived1/p5 NOPASS, POINTER ProcEntity COMPLEX(4)
!DEF: /module1/nested4 PUBLIC Subprogram
- procedure(complex), pointer, nopass :: p5 => nested4
+ procedure(type(complex)), pointer, nopass :: p5 => nested4
!DEF: /module1/derived1/p6 NOPASS, POINTER ProcEntity
!REF: /module1/nested1
! NOTE: sin is not dumped as a DEF here because specific