blob: acdf3cc87d789b7f8d26816443d2bd38967d176e [file] [log] [blame] [edit]
!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;