forked from OSchip/llvm-project
[flang] Allow omission of comma in FORMAT(1PE5.2) in runtime
A comma is not required between a scale factor and a following data edit descriptor (C1302). Reviewed By: PeteSteinfeld Differential Revision: https://reviews.llvm.org/D84369
This commit is contained in:
parent
c37bb5e2a5
commit
e57464151d
|
@ -330,11 +330,13 @@ int FormatControl<CONTEXT>::CueUpNextDataEdit(Context &context, bool stop) {
|
|||
offset_ += *repeat;
|
||||
} else if (ch >= 'A' && ch <= 'Z') {
|
||||
int start{offset_ - 1};
|
||||
CharType next{Capitalize(PeekNext())};
|
||||
if (next >= 'A' && next <= 'Z') {
|
||||
++offset_;
|
||||
} else {
|
||||
next = '\0';
|
||||
CharType next{'\0'};
|
||||
if (ch != 'P') { // 1PE5.2 - comma not required (C1302)
|
||||
CharType peek{Capitalize(PeekNext())};
|
||||
if (peek >= 'A' && peek <= 'Z') {
|
||||
next = peek;
|
||||
++offset_;
|
||||
}
|
||||
}
|
||||
if (ch == 'E' ||
|
||||
(!next &&
|
||||
|
|
|
@ -175,6 +175,7 @@ int main() {
|
|||
{"(E32.17E0,';')", " 0.00000000000000000E+0;"},
|
||||
{"(G32.17E0,';')", " 0.0000000000000000 ;"},
|
||||
{"(1P,E32.17,';')", " 0.00000000000000000E+00;"},
|
||||
{"(1PE32.17,';')", " 0.00000000000000000E+00;"}, // no comma
|
||||
{"(1P,F32.17,';')", " 0.00000000000000000;"},
|
||||
{"(1P,G32.17,';')", " 0.0000000000000000 ;"},
|
||||
{"(2P,E32.17,';')", " 00.0000000000000000E+00;"},
|
||||
|
@ -195,6 +196,7 @@ int main() {
|
|||
{"(E32.17E4,';')", " 0.10000000000000000E+0001;"},
|
||||
{"(G32.17E4,';')", " 1.0000000000000000 ;"},
|
||||
{"(1P,E32.17,';')", " 1.00000000000000000E+00;"},
|
||||
{"(1PE32.17,';')", " 1.00000000000000000E+00;"}, // no comma
|
||||
{"(1P,F32.17,';')", " 0.10000000000000000;"},
|
||||
{"(1P,G32.17,';')", " 1.0000000000000000 ;"},
|
||||
{"(ES32.17,';')", " 1.00000000000000000E+00;"},
|
||||
|
|
Loading…
Reference in New Issue