+2009-08-22 Bud Davis <bdavis9659@sbcglobal.net>
+
+ PR fortran/28093
+ * io.c : added variable to store original len of fmt
+ * io.c (check_format): Consume H items using next_char
+ in both modes to handle consecutive single quotes.
+ Test for extra characters in fmt, issue warning.
+
2009-08-21 Janus Weil <janus@gcc.gnu.org>
PR fortran/41106
static gfc_char_t *format_string;
static int format_string_pos;
static int format_length, use_last_char;
+static int starting_format_length;
static char error_element;
static locus format_locus;
gfc_warning ("The H format specifier at %L is"
" a Fortran 95 deleted feature", &format_locus);
}
-
- if (mode == MODE_STRING)
- {
- format_string += value;
- format_length -= value;
- }
- else
- {
- while (repeat >0)
- {
- next_char (1);
- repeat -- ;
- }
- }
+ while (repeat >0)
+ {
+ next_char (1);
+ repeat -- ;
+ }
break;
case FMT_IBOZ:
rv = FAILURE;
finished:
+ /* check for extraneous characters at end of valid format string */
+ if ( starting_format_length > format_length )
+ {
+ format_locus.nextc += format_length + 1; /* point to the extra */
+ gfc_warning ("Extraneous characters in format at %L", &format_locus);
+ }
+
return rv;
}
mode = MODE_STRING;
format_string = e->value.character.string;
-
+ starting_format_length = e->value.character.length;
/* More elaborate measures are needed to show where a problem is within a
format string that has been calculated, but that's probably not worth the
effort. */
+2009-08-22 Bud Davis <bdavis9659@sbcglobal.net>
+
+ PR fortran/28039
+ * gfortran.dg/fmt_with_extra.f: new file.
2009-08-21 Maciej W. Rozycki <macro@codesourcery.com>
* lib/target-supports.exp
--- /dev/null
+! { dg-do compile }
+! test case contributed by tobias.burnus@physik.fu-berlin.de
+! PR28039 Warn when ignoring extra characters in the format specification
+ implicit none
+ real :: r
+ r = 1.0
+ write(*,'(a),f)') 'Hello', r !{ dg-warning "Extraneous characters in format at" }
+ end