[Bug fortran/105847] namelist-object-name can be a renamed host associated entity
kargl at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Sat Jun 4 18:08:22 GMT 2022
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105847
kargl at gcc dot gnu.org changed:
What |Removed |Added
----------------------------------------------------------------------------
Last reconfirmed| |2022-06-04
Status|UNCONFIRMED |NEW
Ever confirmed|0 |1
--- Comment #1 from kargl at gcc dot gnu.org ---
Found via https://groups.google.com/g/comp.lang.fortran/c/CfODg8wnF8M
The following code should compile and execute to completion.
! { dg-do run }
module m
integer :: name_in_module = 123
end module
program foo
use m, name_in_program => name_in_module
namelist /nl/ name_in_program
if (name_in_program /= 123) stop 1
open(unit=10, file='fort.10', status='replace')
write(10,nl)
close(10)
name_in_program = 42
if (name_in_program /= 42) stop 2
open(unit=10, file='fort.10', status='old')
read(10,nl)
close(10, status='delete')
if (name_in_program /= 123) stop 3
end
The following patch fixes the problem.
diff --git a/gcc/fortran/trans-io.cc b/gcc/fortran/trans-io.cc
index 732221f848b..4621ff1c5b7 100644
--- a/gcc/fortran/trans-io.cc
+++ b/gcc/fortran/trans-io.cc
@@ -1666,8 +1666,10 @@ transfer_namelist_element (stmtblock_t * block, const
char * var_name,
gcc_assert (sym || c);
/* Build the namelist object name. */
-
- string = gfc_build_cstring_const (var_name);
+ if (sym->attr.use_rename)
+ string = gfc_build_cstring_const (sym->ns->use_stmts->rename->local_name);
+ else
+ string = gfc_build_cstring_const (var_name);
string = gfc_build_addr_expr (pchar_type_node, string);
/* Build ts, as and data address using symbol or component. */
More information about the Gcc-bugs
mailing list