re PR fortran/82620 ([PDT] ICE: free_expr0(): Bad expr type (at fortran/expr.c:497))

2017-10-27  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/82620
	* match.c (gfc_match_allocate): Exit early on syntax error.

2017-10-27  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/82620
	* gfortran.dg/allocate_error_7.f90: new test.

From-SVN: r254193
This commit is contained in:
Steven G. Kargl 2017-10-28 01:06:18 +00:00
parent 615c85eefa
commit fdfcd5ecc5
4 changed files with 26 additions and 1 deletions

View file

@ -1,3 +1,8 @@
2017-10-27 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/82620
* match.c (gfc_match_allocate): Exit early on syntax error.
2017-10-27 Thomas Koenig <tkoenig@gcc.gnu.org>
PR fortran/56342

View file

@ -3968,7 +3968,10 @@ gfc_match_allocate (void)
saw_stat = saw_errmsg = saw_source = saw_mold = saw_deferred = false;
if (gfc_match_char ('(') != MATCH_YES)
goto syntax;
{
gfc_syntax_error (ST_ALLOCATE);
return MATCH_ERROR;
}
/* Match an optional type-spec. */
old_locus = gfc_current_locus;

View file

@ -1,3 +1,8 @@
2017-10-27 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/82620
* gfortran.dg/allocate_error_7.f90: new test.
2017-10-27 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/82218

View file

@ -0,0 +1,12 @@
! { dg-do compile }
!
! Code contributed by Gerhard Steinmetz
!
program pr82620
type t(a)
integer, len :: a
end type
type(t(:)), allocatable :: x, y
allocate(t(4) :: x)
allocate)t(7) :: y) ! { dg-error "Syntax error in ALLOCATE" }
end program pr82620