https://gcc.gnu.org/bugzilla/show_bug.cgi?id=123321
--- Comment #21 from anlauf at gcc dot gnu.org ---
(In reply to Steve Kargl from comment #18)
> Created attachment 63193 [details]
> Patch and new testcase
>
> The attached patch and testcase pass regression testing on FreeBSD.
> I'll note that bootstrap is currently broken on FreeBSD, so the
> patch was developed against circa 12-10-26 sources. I believe this
> fixed Van's issue.
diff --git a/gcc/fortran/trans-io.cc b/gcc/fortran/trans-io.cc
index 9360bddb30a..d403cd159ce 100644
--- a/gcc/fortran/trans-io.cc
+++ b/gcc/fortran/trans-io.cc
@@ -1698,8 +1698,9 @@ transfer_namelist_element (stmtblock_t * block, const
char * var_name,
gcc_assert (sym || c);
/* Build the namelist object name. */
- if (sym && !sym->attr.use_only && sym->attr.use_rename
- && sym->ns->use_stmts->rename)
+ if (sym && sym->attr.use_rename && sym->ns->use_stmts->rename
+ && strlen(sym->ns->use_stmts->rename->local_name) > 0
+ && strcmp(sym->ns->use_stmts->rename->use_name, var_name) == 0)
string = gfc_build_cstring_const (sym->ns->use_stmts->rename->local_name);
else
string = gfc_build_cstring_const (var_name);
It may be advisable to replace
+ && strlen(sym->ns->use_stmts->rename->local_name) > 0
by sth. slightly more robust, e.g.
+ && sym->ns->use_stmts->rename->local_name
+ && sym->ns->use_stmts->rename->local_name[0]