mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-02-25 04:15:35 +08:00
re PR libfortran/42742 (Handle very large format strings correctly)
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. From-SVN: r156568
This commit is contained in:
parent
e8583d3ae1
commit
6c076a6c42
@ -1,3 +1,10 @@
|
||||
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
|
||||
|
@ -130,7 +130,7 @@ reset_fnode_counters (st_parameter_dt *dtp)
|
||||
/* 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);
|
||||
}
|
||||
|
||||
@ -1212,8 +1212,6 @@ revert (st_parameter_dt *dtp)
|
||||
|
||||
/* parse_format()-- Parse a format string. */
|
||||
|
||||
#define FORMAT_CACHE_STRING_LIMIT 256
|
||||
|
||||
void
|
||||
parse_format (st_parameter_dt *dtp)
|
||||
{
|
||||
@ -1222,8 +1220,7 @@ 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)
|
||||
|
Loading…
Reference in New Issue
Block a user