re PR fortran/14957 (testsuite issues)
fortran/ PR fortran/14957 * decl.c (gfc_match_end): Require END {SUBROUTINE|FUNCTION} for contained procedure. testsuite/ PR fortran/14957 * gfortran.fortran-torture/execute/stack_varsize.f90: Correct syntax errors in end statements of contained subroutines. From-SVN: r83031
This commit is contained in:
parent
a13c75880a
commit
c52eae8de0
4 changed files with 20 additions and 3 deletions
|
@ -1,3 +1,9 @@
|
|||
2004-06-12 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
|
||||
|
||||
PR fortran/14957
|
||||
* decl.c (gfc_match_end): Require END {SUBROUTINE|FUNCTION} for
|
||||
contained procedure.
|
||||
|
||||
2004-06-12 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
|
||||
|
||||
PR fortran/12841
|
||||
|
|
|
@ -1875,10 +1875,15 @@ gfc_match_end (gfc_statement * st)
|
|||
|
||||
if (gfc_match_eos () == MATCH_YES)
|
||||
{
|
||||
state = gfc_current_state ();
|
||||
|
||||
if (*st == ST_ENDIF || *st == ST_ENDDO || *st == ST_END_SELECT
|
||||
|| *st == ST_END_INTERFACE || *st == ST_END_FORALL
|
||||
|| *st == ST_END_WHERE)
|
||||
|| *st == ST_END_WHERE
|
||||
|| /* A contained procedure requires END FUNCTION/SUBROUTINE. */
|
||||
((state == COMP_FUNCTION || state == COMP_SUBROUTINE)
|
||||
&& gfc_state_stack->previous != NULL
|
||||
&& gfc_state_stack->previous->state == COMP_CONTAINS))
|
||||
{
|
||||
|
||||
gfc_error ("%s statement expected at %C",
|
||||
|
|
|
@ -1,3 +1,9 @@
|
|||
2004-06-12 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
|
||||
|
||||
PR fortran/14957
|
||||
* gfortran.fortran-torture/execute/stack_varsize.f90: Correct
|
||||
syntax errors in end statements of contained subroutines.
|
||||
|
||||
2004-06-12 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
|
||||
|
||||
PR fortran/12841
|
||||
|
|
|
@ -17,7 +17,7 @@ contains
|
|||
k = 30
|
||||
if ((a .ne. 10.0).or.(b(1) .ne. 20.0).or.(c(1) .ne. 30.0)) call abort
|
||||
if ((m .ne. 10).or.(n(256,4) .ne. 20).or.(k(1,1024) .ne. 30)) call abort
|
||||
end
|
||||
end subroutine
|
||||
|
||||
! Local variables defined in recursive subroutine are always put on stack.
|
||||
recursive subroutine sub2 (n)
|
||||
|
@ -26,5 +26,5 @@ contains
|
|||
if (n .ge. 1) call sub2 (n-1)
|
||||
if (a(1) .ne. 42) call abort
|
||||
a (1) = 0
|
||||
end
|
||||
end subroutine
|
||||
end
|
||||
|
|
Loading…
Add table
Reference in a new issue