parse.c (match): Enclosed macro in do...while(0) and braces.

2005-08-14  Asher Langton  <langton2@llnl.gov>

        * parse.c (match): Enclosed macro in do...while(0) and braces.

Also fix formatting of a few previous ChangeLog entries

From-SVN: r103086
This commit is contained in:
Tobias Schlüter 2005-08-14 23:45:03 +02:00
parent 21d7d31f71
commit 2b22401b5a
2 changed files with 16 additions and 9 deletions

View File

@ -1,9 +1,13 @@
2005-08-14 Paul Thomas <pault@gcc.gnu.org>
2005-08-14 Asher Langton <langton2@llnl.gov>
* parse.c (match): Enclosed macro in do...while(0) and braces.
2005-08-14 Paul Thomas <pault@gcc.gnu.org>
PR fortran/21432.
* gfortran.texi: Document PRINT namelist.
2005-08-14 Paul Thomas <pault@gcc.gnu.org>
2005-08-14 Paul Thomas <pault@gcc.gnu.org>
PR fortran/21432.
* io.c (match_io): Add code to implement PRINT namelist.
@ -178,7 +182,7 @@
* trans-stmt.c (gfc_trans_character_select): Use
build_constructor_from_list instead of build_constructor.
2005-07-19 Paul Thomas <pault@gcc.gnu.org>
2005-07-19 Paul Thomas <pault@gcc.gnu.org>
PR fortran/16940
* resolve.c (resolve_symbol): A symbol with FL_UNKNOWN
@ -918,7 +922,7 @@
* resolve.c (resolve_variable): If e->symtree is not set, this
ought to be a FAILURE, and not a segfault.
2005-04-17 Paul Thomas <pault@gcc.gnu.org>
2005-04-17 Paul Thomas <pault@gcc.gnu.org>
PR fortran/17472
PR fortran/18209

View File

@ -75,13 +75,16 @@ match_word (const char *str, match (*subr) (void), locus * old_locus)
/* Figure out what the next statement is, (mostly) regardless of
proper ordering. */
proper ordering. The do...while(0) is there to prevent if/else
ambiguity. */
#define match(keyword, subr, st) \
if (match_word(keyword, subr, &old_locus) == MATCH_YES) \
return st; \
else \
undo_new_statement ();
do { \
if (match_word(keyword, subr, &old_locus) == MATCH_YES) \
return st; \
else \
undo_new_statement (); \
} while (0);
static gfc_statement
decode_statement (void)