Index: flang/docs/Extensions.md =================================================================== --- flang/docs/Extensions.md +++ flang/docs/Extensions.md @@ -256,6 +256,7 @@ to apply only to a scalar data-ref, but most compilers don't enforce it and the constraint is not necessary for a correct implementation. +* A label may follow a semicolon in fixed form source. ### Extensions supported when enabled by options Index: flang/lib/Parser/prescan.cpp =================================================================== --- flang/lib/Parser/prescan.cpp +++ flang/lib/Parser/prescan.cpp @@ -629,6 +629,12 @@ EmitCharAndAdvance(tokens, nch); } else if (ch == '/') { slashInCurrentStatement_ = true; + } else if (ch == ';' && InFixedFormSource()) { + SkipSpaces(); + if (IsDecimalDigit(*at_)) { + Say(GetProvenanceRange(at_, at_ + 1), + "Label should be in the label field"_port_en_US); + } } } tokens.CloseToken(); Index: flang/test/Parser/bad-label.f =================================================================== --- /dev/null +++ flang/test/Parser/bad-label.f @@ -0,0 +1,4 @@ +! RUN: %flang_fc1 -fsyntax-only -pedantic %s 2>&1 | FileCheck %s +!CHECK: portability: Label should be in the label field + goto 1; 1 continue + end