Commit b15e7bdd by Steven G. Kargl

re PR fortran/67525 (ICE on select type with improper selector)

2015-09-25  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/67525
	* parse.c (match_deferred_characteristics): Remove an assert, which
	allows an invalid SELECT TYPE selector to be detected.

 
2015-09-25  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/67525
	* gfortran.dg/pr67525.f90: New test.

From-SVN: r228155
parent f7697f9c
2015-09-25 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/67525
* parse.c (match_deferred_characteristics): Remove an assert, which
allows an invalid SELECT TYPE selector to be detected.
2015-09-25 Manuel López-Ibáñez <manu@gcc.gnu.org>
PR pretty-print/67567
......
......@@ -3113,15 +3113,18 @@ match_deferred_characteristics (gfc_typespec * ts)
static void
check_function_result_typed (void)
{
gfc_typespec* ts = &gfc_current_ns->proc_name->result->ts;
gfc_typespec ts;
gcc_assert (gfc_current_state () == COMP_FUNCTION);
gcc_assert (ts->type != BT_UNKNOWN);
if (!gfc_current_ns->proc_name->result) return;
ts = gfc_current_ns->proc_name->result->ts;
/* Check type-parameters, at the moment only CHARACTER lengths possible. */
/* TODO: Extend when KIND type parameters are implemented. */
if (ts->type == BT_CHARACTER && ts->u.cl && ts->u.cl->length)
gfc_expr_check_typed (ts->u.cl->length, gfc_current_ns, true);
if (ts.type == BT_CHARACTER && ts.u.cl && ts.u.cl->length)
gfc_expr_check_typed (ts.u.cl->length, gfc_current_ns, true);
}
......
2015-09-25 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/67525
* gfortran.dg/pr67525.f90: New test.
2015-09-25 Mikael Morin <mikael@gcc.gnu.org>
PR fortran/55603
......
! { dg-do compile }
! PR fortran/67525
! Code contributed by Gerhard Steinmetz
!
real function f(x)
select type (x) ! { dg-error "shall be polymorphic" }
end select
end function f
real function g(x)
select type (x=>null()) ! { dg-error "shall be polymorphic" }
end select
end function g
subroutine a(x)
select type (x) ! { dg-error "shall be polymorphic" }
end select
end subroutine a
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