Commit ef701bbe by Steven G. Kargl

re PR fortran/66245 (ICE on select type with empty type spec)

2015-06-08  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/66245
	* match.c (gfc_match_type_is, gfc_match_class_is):  Check if the
	return type spec or derived type spec is validate.

2015-06-08  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/66245
	* gfortran.dg/class_is_1.f90: New test.
	* gfortran.dg/type_is_1.f90: Ditto.

From-SVN: r224237
parent a1661b90
2015-06-08 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/66245
* match.c (gfc_match_type_is, gfc_match_class_is): Check if the
return type spec or derived type spec is validate.
2015-06-06 Thomas Koenig <tkoenig@netcologne.de>
PR fortran/47659
......
......@@ -5456,7 +5456,10 @@ gfc_match_type_is (void)
c = gfc_get_case ();
c->where = gfc_current_locus;
if (gfc_match_type_spec (&c->ts) == MATCH_ERROR)
m = gfc_match_type_spec (&c->ts);
if (m == MATCH_NO)
goto syntax;
if (m == MATCH_ERROR)
goto cleanup;
if (gfc_match_char (')') != MATCH_YES)
......@@ -5536,7 +5539,10 @@ gfc_match_class_is (void)
c = gfc_get_case ();
c->where = gfc_current_locus;
if (match_derived_type_spec (&c->ts) == MATCH_ERROR)
m = match_derived_type_spec (&c->ts);
if (m == MATCH_NO)
goto syntax;
if (m == MATCH_ERROR)
goto cleanup;
if (c->ts.type == BT_DERIVED)
......
2015-06-08 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/66245
* gfortran.dg/class_is_1.f90: New test.
* gfortran.dg/type_is_1.f90: Ditto.
2015-06-08 Marek Polacek <polacek@redhat.com>
PR c/66415
......
! { dg-do compile }
! PR fortran/66245
! Original testcase by Gerhard Steinmetz
! <gerhard dot steinmetz dot fortran at t-online dot de>
program p
type t; end type
class(t), allocatable :: x
call s
contains
subroutine s
select type ( x )
class is ( ) ! { dg-error "error in CLASS IS" }
end select
end subroutine s
end program p
! { dg-do compile }
! PR fortran/66245
! Original testcase by Gerhard Steinmetz
! <gerhard dot steinmetz dot fortran at t-online dot de>
program p
type t; end type
class(t), allocatable :: x
call s
contains
subroutine s
select type ( x )
type is ( ) ! { dg-error "error in TYPE IS" }
end select
end subroutine s
end program p
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