!RUN: %flang_fc1 -fdebug-dump-parse-tree-no-sema %s 2>&1 | FileCheck %s !RUN: not %flang_fc1 -pedantic -Werror -fdebug-dump-parse-tree-no-sema %s 2>&1 | FileCheck %s --check-prefix=ERROR ! CHECK: Program -> ProgramUnit -> SubroutineSubprogram ! CHECK: ProgramUnit -> FunctionSubprogram ! CHECK: ProgramUnit -> MainProgram ! ERROR: portability: nonstandard usage: end of program unit not terminated by new line ! ERROR: portability: nonstandard usage: end of program unit not terminated by new line subroutine sub; end; function fn(); end; program p; end; ! CHECK: ProgramUnit -> SubroutineSubprogram ! CHECK: ProgramUnit -> MainProgram ! CHECK: ProgramUnit -> MainProgram ! CHECK: ProgramUnit -> Module ! ERROR: portability: nonstandard usage: end of program unit not terminated by new line ! ERROR: portability: nonstandard usage: end of program unit not terminated by new line ! ERROR: portability: nonstandard usage: end of program unit not terminated by new line subroutine sub2; end; end program; end program; module m; end ! CHECK: ProgramUnit -> BlockData ! CHECK: ProgramUnit -> BlockData ! CHECK: ProgramUnit -> BlockData ! ERROR: portability: nonstandard usage: end of program unit not terminated by new line ! ERROR: portability: nonstandard usage: end of program unit not terminated by new line block data bd; end; block data bd2; end; block data bd3; end ! CHECK: ProgramUnit -> Module ! CHECK: ProgramUnit -> Submodule ! CHECK: ProgramUnit -> Submodule ! ERROR: portability: nonstandard usage: end of program unit not terminated by new line ! ERROR: portability: nonstandard usage: end of program unit not terminated by new line module sm; end; submodule (sm) sm2; end; submodule (sm:sm2) sm3; end ! CHECK: ProgramUnit -> MainProgram ! CHECK: ProgramUnit -> MainProgram ! ERROR: portability: nonstandard usage: end of program unit not terminated by new line program p; end; use sm; print *, "Hello, World!"; end ! CHECK: ProgramUnit -> MainProgram ! CHECK: ProgramUnit -> MainProgram ! ERROR: portability: nonstandard usage: end of program unit not terminated by new line program p; end; use sm; print *, "Hello, World!"; end ! CHECK: ProgramUnit -> MainProgram ! CHECK: ProgramUnit -> MainProgram ! ERROR: portability: nonstandard usage: end of program unit not terminated by new line program p; end; use sm; print *, "Hello, World!"; end ! CHECK: ProgramUnit -> FunctionSubprogram ! CHECK: ProgramUnit -> MainProgram function fn(); end 10 print *, "1"; 20 print *, "2"; end program; ! CHECK: ProgramUnit -> FunctionSubprogram ! CHECK: ProgramUnit -> MainProgram ! ERROR: portability: nonstandard usage: end of program unit not terminated by new line function fn(); end; 10 print *, "1"; 20 print *, "2"; end program;