Commit bfe936c0 by Paul Thomas

Fix bug that causes testsuite failure in namelist_13.f90 on some systems.

Co-Authored-By: Jerry DeLisle <jvdelisle@verizon.net>

From-SVN: r98610
parent 528e5d8b
2005-04-18 Paul Thomas <pault@gcc.gnu.org>
Jerry DeLisle <jvdelisle@verizon.net>
* io/write.c (nml_write_obj): Provide 1 more byte for ext_name.
* io/list_read.c (nml_get_obj_data): Put extra brackets in get_mem
call for ext_name. These fix the bug reported by Jerry DeLisle to
the fortran list and are based on his suggested fix.
2005-04-22 Thomas Koenig <Thomas.Koenig@online.de> 2005-04-22 Thomas Koenig <Thomas.Koenig@online.de>
PR libfortran/20074 PR libfortran/20074
......
...@@ -2107,8 +2107,9 @@ get_name: ...@@ -2107,8 +2107,9 @@ get_name:
if (component_flag) if (component_flag)
{ {
ext_name = (char*)get_mem (strlen (root_nl->var_name) + ext_name = (char*)get_mem (strlen (root_nl->var_name)
saved_string ? strlen (saved_string) : 0 + 1); + (saved_string ? strlen (saved_string) : 0)
+ 1);
strcpy (ext_name, root_nl->var_name); strcpy (ext_name, root_nl->var_name);
strcat (ext_name, saved_string); strcat (ext_name, saved_string);
nl = find_nml_node (ext_name); nl = find_nml_node (ext_name);
......
...@@ -1477,7 +1477,8 @@ nml_write_obj (namelist_info * obj, index_type offset, ...@@ -1477,7 +1477,8 @@ nml_write_obj (namelist_info * obj, index_type offset,
ext_name = (char*)get_mem ( (base_name ? strlen (base_name) : 0) ext_name = (char*)get_mem ( (base_name ? strlen (base_name) : 0)
+ (base ? strlen (base->var_name) : 0) + (base ? strlen (base->var_name) : 0)
+ strlen (obj->var_name) + strlen (obj->var_name)
+ obj->var_rank * NML_DIGITS); + obj->var_rank * NML_DIGITS
+ 1);
strcpy(ext_name, base_name ? base_name : ""); strcpy(ext_name, base_name ? base_name : "");
clen = base ? strlen (base->var_name) : 0; clen = base ? strlen (base->var_name) : 0;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment