https://gcc.gnu.org/bugzilla/show_bug.cgi?id=123321

--- Comment #5 from Steve Kargl <kargl at gcc dot gnu.org> ---
(In reply to Steve Kargl from comment #3)
> This diff 
> 
> diff --git a/gcc/fortran/trans-io.cc b/gcc/fortran/trans-io.cc
> index 9360bddb30a..bbcfc292c0a 100644
> --- a/gcc/fortran/trans-io.cc
> +++ b/gcc/fortran/trans-io.cc
> @@ -1698,7 +1698,7 @@ transfer_namelist_element (stmtblock_t * block, const
> char * var_name,
>    gcc_assert (sym || c);
>  

So, the patch causes a testsuite regression with 
gfortran.dg/namelist_use_only.f90.  I think that
test may be wrong, but I'm not a namelist user.
It has (removing unimportant code)

module global
  character*4 :: aaa
  integer :: iii
  real :: rrr
  namelist /nml2/ aaa, iii, rrr
end module global

program namelist_use_only
  use global, only : nml2, rrrr=>rrr
  open (10, status="scratch")
  write (10,'(a)') "&NML2 aaa='pqrs' iii=2 rrr=3.5 /"
  rewind (10)
  read (10,nml=nml2,iostat=i) 
  if ((i.ne.0).or.(rrrr.ne.3.5)) STOP 2
  close (10)
end program namelist_use_only

The renaming of 'rrrr=>rrr' means 'rrr' from the module
is unavailable in the program unit.  The read statement with
'nml=nml2' uses a namelist defined in terms of 'rrr'.  This
seems to be an interesting way to access an entity from a
module that has been renamed.

Reply via email to