From 5244bb18abbf70d2f4475fa8facb34d4d8af0d32 Mon Sep 17 00:00:00 2001 From: V Donaldson Date: Tue, 4 Jan 2022 10:34:07 -0800 Subject: Modify an IO format error message F18 constraint C1308 is: For the G edit descriptor, e shall not be specified if w is zero. For an edit descriptor such as 'G0.2E4', change the error message from: error: Unexpected 'e' in 'G0' edit descriptor To: error: A 'G0' edit descriptor must not have an 'e' value --- flang/include/flang/Common/format.h | 4 ++-- flang/test/Semantics/io07.f90 | 4 ++-- flang/test/Semantics/io08.f90 | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/flang/include/flang/Common/format.h b/flang/include/flang/Common/format.h index e38ea6b0dfed..7ca3faa79f29 100644 --- a/flang/include/flang/Common/format.h +++ b/flang/include/flang/Common/format.h @@ -606,8 +606,8 @@ template bool FormatValidator::Check() { check_e(); } } else if (token_.kind() == TokenKind::Point && check_d() && - token_.kind() == TokenKind::E) { - ReportError("Unexpected 'e' in 'G0' edit descriptor"); // C1308 + token_.kind() == TokenKind::E) { // C1308 + ReportError("A 'G0' edit descriptor must not have an 'e' value"); NextToken(); if (token_.kind() == TokenKind::UnsignedInteger) { NextToken(); diff --git a/flang/test/Semantics/io07.f90 b/flang/test/Semantics/io07.f90 index 5c4c2b419d97..9b1f048e5b17 100644 --- a/flang/test/Semantics/io07.f90 +++ b/flang/test/Semantics/io07.f90 @@ -74,9 +74,9 @@ 8001 format(9G0.5) - !ERROR: Unexpected 'e' in 'G0' edit descriptor + !ERROR: A 'G0' edit descriptor must not have an 'e' value 8101 format(9(G0.5e1)) - !ERROR: Unexpected 'e' in 'G0' edit descriptor + !ERROR: A 'G0' edit descriptor must not have an 'e' value 8102 format(9(G0.5 E 1)) end diff --git a/flang/test/Semantics/io08.f90 b/flang/test/Semantics/io08.f90 index c074e1562e22..843028acfd5b 100644 --- a/flang/test/Semantics/io08.f90 +++ b/flang/test/Semantics/io08.f90 @@ -189,10 +189,10 @@ !ERROR: Expected 'G' edit descriptor '.d' value write(*,'(G4)') - !ERROR: Unexpected 'e' in 'G0' edit descriptor + !ERROR: A 'G0' edit descriptor must not have an 'e' value write(*,'(G0.8e)') - !ERROR: Unexpected 'e' in 'G0' edit descriptor + !ERROR: A 'G0' edit descriptor must not have an 'e' value write(*,'(G0.8e2)') !ERROR: Kind parameter '_' character in format expression -- cgit v1.2.1