mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-03-19 01:40:39 +08:00
Andrew Vaught <andyv@firstinter.net>
2004-06-25 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de> Andrew Vaught <andyv@firstinter.net> PR fortran/15190 * decl.c (gfc_match_type_spec), io.c (match_io), parse.c (decode_statement): Enforce required space in free-form. Co-Authored-By: Andrew Vaught <andyv@firstinter.net> From-SVN: r83708
This commit is contained in:
parent
e9e4d4ee5b
commit
0ff0dfbf18
@ -1,3 +1,10 @@
|
||||
2004-06-25 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
|
||||
Andrew Vaught <andyv@firstinter.net>
|
||||
|
||||
PR fortran/15190
|
||||
* decl.c (gfc_match_type_spec), io.c (match_io), parse.c
|
||||
(decode_statement): Enforce required space in free-form.
|
||||
|
||||
2004-06-21 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
|
||||
|
||||
* f95-lang.c (LANG_HOOKS_GIMPLE_BEFORE_INLINING): Deleted.
|
||||
|
@ -884,6 +884,7 @@ gfc_match_type_spec (gfc_typespec * ts, int kind_flag)
|
||||
char name[GFC_MAX_SYMBOL_LEN + 1];
|
||||
gfc_symbol *sym;
|
||||
match m;
|
||||
int c;
|
||||
|
||||
gfc_clear_ts (ts);
|
||||
|
||||
@ -962,6 +963,14 @@ get_kind:
|
||||
if (kind_flag == 0)
|
||||
return MATCH_YES;
|
||||
|
||||
if (gfc_current_form == FORM_FREE)
|
||||
{
|
||||
c = gfc_peek_char();
|
||||
if (!gfc_is_whitespace(c) && c != '*' && c != '('
|
||||
&& c != ':' && c != ',')
|
||||
return MATCH_NO;
|
||||
}
|
||||
|
||||
m = gfc_match_kind_spec (ts);
|
||||
if (m == MATCH_NO && ts->type != BT_CHARACTER)
|
||||
m = gfc_match_old_kind_spec (ts);
|
||||
|
@ -2046,7 +2046,7 @@ match_io (io_kind k)
|
||||
gfc_code *io_code;
|
||||
gfc_symbol *sym;
|
||||
gfc_expr *expr;
|
||||
int comma_flag;
|
||||
int comma_flag, c;
|
||||
locus where;
|
||||
gfc_dt *dt;
|
||||
match m;
|
||||
@ -2059,6 +2059,16 @@ match_io (io_kind k)
|
||||
if (k == M_WRITE)
|
||||
goto syntax;
|
||||
|
||||
if (gfc_current_form == FORM_FREE)
|
||||
{
|
||||
c = gfc_peek_char();
|
||||
if (c != ' ' && c != '*' && c != '\'' && c != '"')
|
||||
{
|
||||
m = MATCH_NO;
|
||||
goto cleanup;
|
||||
}
|
||||
}
|
||||
|
||||
m = match_dt_format (dt);
|
||||
if (m == MATCH_ERROR)
|
||||
goto cleanup;
|
||||
|
@ -177,7 +177,7 @@ decode_statement (void)
|
||||
|
||||
case 'b':
|
||||
match ("backspace", gfc_match_backspace, ST_BACKSPACE);
|
||||
match ("block data", gfc_match_block_data, ST_BLOCK_DATA);
|
||||
match ("block data% ", gfc_match_block_data, ST_BLOCK_DATA);
|
||||
break;
|
||||
|
||||
case 'c':
|
||||
@ -206,7 +206,7 @@ decode_statement (void)
|
||||
if (gfc_match_end (&st) == MATCH_YES)
|
||||
return st;
|
||||
|
||||
match ("entry", gfc_match_entry, ST_ENTRY);
|
||||
match ("entry% ", gfc_match_entry, ST_ENTRY);
|
||||
match ("equivalence", gfc_match_equivalence, ST_EQUIVALENCE);
|
||||
match ("external", gfc_match_external, ST_ATTR_DECL);
|
||||
break;
|
||||
@ -229,7 +229,7 @@ decode_statement (void)
|
||||
break;
|
||||
|
||||
case 'm':
|
||||
match ("module% procedure", gfc_match_modproc, ST_MODULE_PROC);
|
||||
match ("module% procedure% ", gfc_match_modproc, ST_MODULE_PROC);
|
||||
match ("module", gfc_match_module, ST_MODULE);
|
||||
break;
|
||||
|
||||
@ -273,7 +273,7 @@ decode_statement (void)
|
||||
break;
|
||||
|
||||
case 'u':
|
||||
match ("use", gfc_match_use, ST_USE);
|
||||
match ("use% ", gfc_match_use, ST_USE);
|
||||
break;
|
||||
|
||||
case 'w':
|
||||
|
Loading…
x
Reference in New Issue
Block a user