From 3b1412933703022311ee50a170567293358e2b80 Mon Sep 17 00:00:00 2001 From: vdonaldson <37090318+vdonaldson@users.noreply.github.com> Date: Wed, 26 Jun 2019 15:46:48 -0700 Subject: [PATCH] [flang] Initialize PRINT semantics. Fixes flang-compiler/f18#516 (flang-compiler/f18#528) There are no Clause 12 constraints to check for PRINT, but PRINT does share FMT specifier processing with READ and WRITE. To avoid interactions between these I/O statements, reset IoChecker values for PRINT. Original-commit: flang-compiler/f18@6a547667187e2832c8c162d4ee02835ff4c190b4 Reviewed-on: https://github.com/flang-compiler/f18/pull/528 --- flang/lib/semantics/check-io.h | 1 + flang/test/semantics/io03.f90 | 1 + 2 files changed, 2 insertions(+) diff --git a/flang/lib/semantics/check-io.h b/flang/lib/semantics/check-io.h index c549b0e..e21f36d 100644 --- a/flang/lib/semantics/check-io.h +++ b/flang/lib/semantics/check-io.h @@ -35,6 +35,7 @@ public: void Enter(const parser::FlushStmt &) { Init(IoStmtKind::Flush); } void Enter(const parser::InquireStmt &) { Init(IoStmtKind::Inquire); } void Enter(const parser::OpenStmt &) { Init(IoStmtKind::Open); } + void Enter(const parser::PrintStmt &) { Init(IoStmtKind::Print); } void Enter(const parser::ReadStmt &) { Init(IoStmtKind::Read); } void Enter(const parser::RewindStmt &) { Init(IoStmtKind::Rewind); } void Enter(const parser::WaitStmt &) { Init(IoStmtKind::Wait); } diff --git a/flang/test/semantics/io03.f90 b/flang/test/semantics/io03.f90 index 9df7e0b..5403b23 100644 --- a/flang/test/semantics/io03.f90 +++ b/flang/test/semantics/io03.f90 @@ -31,6 +31,7 @@ open(10) read* + print*, 'Ok' read(*) read*, jj read(*, *) jj -- 2.7.4