Commit 224efaf7 by Tobias Burnus

[Fortran] Fix error cleanup of select rank (PR93522)

	PR fortran/93522
	* match.c (gfc_match_select_rank): Fix error cleanup.

	PR fortran/93522
	* gfortran.dg/select_rank_4.f90: New.
parent b7a98f48
2020-04-02 Tobias Burnus <tobias@codesourcery.com>
PR fortran/93522
* match.c (gfc_match_select_rank): Fix error cleanup.
2020-04-02 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/93498
......
......@@ -6678,6 +6678,7 @@ gfc_match_select_rank (void)
if (m != MATCH_YES)
{
gfc_undo_symbols ();
std::swap (ns, gfc_current_ns);
gfc_free_namespace (ns);
return m;
......
2020-04-02 Tobias Burnus <tobias@codesourcery.com>
PR fortran/93522
* gfortran.dg/select_rank_4.f90: New.
2020-04-02 Mark Eggleston <mark.eggleston@codethink.com>
PR fortran/93498
......
! { dg-do compile }
!
! PR fortran/93522
!
! Contributed by Shubham Narlawar
program rank_new
implicit none
integer :: some_var_assumed
integer, DIMENSION(3,2,1) :: array
PRINT *, RANK(array)
call CALL_ME(array)
contains
!No error expected
subroutine CALL_ME23(x)
implicit none
integer:: x(..), a=10,b=20
integer, dimension(10) :: arr = (/1,2,3,4,5/) ! { dg-error "Different shape for array assignment at .1. on dimension 1 .10 and 5." }
select rank(arr(1:3)) ! { dg-error "Syntax error in argument list" }
RANK(1) ! { dg-error "Unexpected RANK statement" }
print *, "1"
rank(2) ! { dg-error "Unexpected RANK statement" }
print *, "2"
end select ! { dg-error "Expecting END SUBROUTINE statement" }
end subroutine
end program
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment