2010-02-06 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+ PR libfortran/42742
+ * io/format.c (reset_fnode_counters): Use the correct pointer to the
+ head of the fnode list. (parse_format): Remove previous hack that set
+ limit on size of format string for caching.
+
+2010-02-06 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+
PR libfortran
* io/transfer.c (read_sf): Handle EOR and EOF conditions for
ADVANCE="no" with PAD="yes" or PAD="no".
/* Clear this pointer at the head so things start at the right place. */
fmt->array.array[0].current = NULL;
- for (f = fmt->last->array[0].u.child; f; f = f->next)
+ for (f = fmt->array.array[0].u.child; f; f = f->next)
reset_node (f);
}
/* parse_format()-- Parse a format string. */
-#define FORMAT_CACHE_STRING_LIMIT 256
-
void
parse_format (st_parameter_dt *dtp)
{
/* Don't cache for internal units and set an arbitrary limit on the size of
format strings we will cache. (Avoids memory issues.) */
- format_cache_ok = !is_internal_unit (dtp)
- && (dtp->format_len < FORMAT_CACHE_STRING_LIMIT );
+ format_cache_ok = !is_internal_unit (dtp);
/* Lookup format string to see if it has already been parsed. */
if (format_cache_ok)