This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Patch, Fortran] PR 38252 FUNCTION rejected if both specification and execution part are empty


Hi,

this fixes PR 38252 where this was rejected:

INTEGER FUNCTION test ()
CONTAINS
END FUNCTION test

Gfortran calls verify_st_order to check that there won't be any implicit
statement after the current statement. Then we can check that the
function has been typed (with the implicit rules or not).
Daniel I hope I have understood what you did here.

The problem was that verify_st_order didn't special case ST_CONTAINS,
and the switch was falling back to default: internal error.
The error wasn't reach in other cases because the check was done before
contains.

This patch adds a case for ST_CONTAINS.

Regression tested on x86_64-unknown-linux-gnu.

Ok for trunk?


Mikael


2008-11-27  Mikael Morin  <mikael.morin@tele2.fr>

	PR fortran/38252
	* parse.c (struct st_state): Add ORDER_CONTAINS to enum state.
	(verify_st_order): Add statement ST_CONTAINS case.
	Set state to ORDER_CONTAINS in that case.

2008-11-27  Mikael Morin <mikael.morin@tele2.fr>

	PR fortran/38252
	* gfortran.dg/empty_function_1.f90: New test.

Attachment: pr38252_02.diff
Description: Text document


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]