re PR fortran/20846 (inquire(FILE=..., UNIT=...) not flagged as error)
fortran/PR20846 * io.c (gfc_match_inquire): Implement constraints on UNIT and FILE usage. From-SVN: r100338
This commit is contained in:
parent
93ef85a292
commit
44998b6526
@ -1,3 +1,8 @@
|
||||
2005-05-29 Steven G. Kargl
|
||||
|
||||
fortran/PR20846
|
||||
* io.c (gfc_match_inquire): Implement constraints on UNIT and FILE usage.
|
||||
|
||||
2005-05-29 Francois-Xavier Coudert <coudert@clipper.ens.fr>
|
||||
|
||||
PR libfortran/20006
|
||||
|
@ -2363,6 +2363,7 @@ gfc_match_inquire (void)
|
||||
gfc_inquire *inquire;
|
||||
gfc_code *code;
|
||||
match m;
|
||||
locus loc;
|
||||
|
||||
m = gfc_match_char ('(');
|
||||
if (m == MATCH_NO)
|
||||
@ -2370,6 +2371,8 @@ gfc_match_inquire (void)
|
||||
|
||||
inquire = gfc_getmem (sizeof (gfc_inquire));
|
||||
|
||||
loc = gfc_current_locus;
|
||||
|
||||
m = match_inquire_element (inquire);
|
||||
if (m == MATCH_ERROR)
|
||||
goto cleanup;
|
||||
@ -2435,6 +2438,20 @@ gfc_match_inquire (void)
|
||||
if (gfc_match_eos () != MATCH_YES)
|
||||
goto syntax;
|
||||
|
||||
if (inquire->unit != NULL && inquire->file != NULL)
|
||||
{
|
||||
gfc_error ("INQUIRE statement at %L cannot contain both FILE and"
|
||||
" UNIT specifiers", &loc);
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
if (inquire->unit == NULL && inquire->file == NULL)
|
||||
{
|
||||
gfc_error ("INQUIRE statement at %L requires either FILE or"
|
||||
" UNIT specifier", &loc);
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
if (gfc_pure (NULL))
|
||||
{
|
||||
gfc_error ("INQUIRE statement not allowed in PURE procedure at %C");
|
||||
|
Loading…
Reference in New Issue
Block a user