+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.
char name[GFC_MAX_SYMBOL_LEN + 1];
gfc_symbol *sym;
match m;
+ int c;
gfc_clear_ts (ts);
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);
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':
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;
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;
break;
case 'u':
- match ("use", gfc_match_use, ST_USE);
+ match ("use% ", gfc_match_use, ST_USE);
break;
case 'w':