aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran/io.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/fortran/io.c')
-rw-r--r--gcc/fortran/io.c25
1 files changed, 11 insertions, 14 deletions
diff --git a/gcc/fortran/io.c b/gcc/fortran/io.c
index 979dfc2..298c758 100644
--- a/gcc/fortran/io.c
+++ b/gcc/fortran/io.c
@@ -483,7 +483,6 @@ check_format (bool is_input)
" at %L");
const char *unexpected_end = _("Unexpected end of format string");
const char *zero_width = _("Zero width in format descriptor");
- const char *g0_precision = _("Specifying precision with G0 not allowed");
const char *error;
format_token t, u;
@@ -701,27 +700,25 @@ data_desc:
error = zero_width;
goto syntax;
}
-
if (gfc_notify_std (GFC_STD_F2008, "Fortran 2008: 'G0' in "
"format at %C") == FAILURE)
return FAILURE;
+ u = format_lex ();
+ if (u != FMT_PERIOD)
+ {
+ saved_token = u;
+ break;
+ }
u = format_lex ();
- if (u == FMT_PERIOD)
+ if (u == FMT_ERROR)
+ goto fail;
+ if (u != FMT_POSINT)
{
- error = g0_precision;
+ error = posint_required;
goto syntax;
}
- saved_token = u;
- goto between_desc;
- }
-
- if (u == FMT_ERROR)
- goto fail;
- if (u != FMT_POSINT)
- {
- error = posint_required;
- goto syntax;
+ break;
}
u = format_lex ();