integer,private :: i
  namelist /c/ i
is correctly diagnosed as invalid: "PRIVATE symbol '%s' cannot be member of
PUBLIC namelist at %L"; however, for derived types this fails. Note that NAG
f95 only gives an error for "B" and not for "A":

Error: mod.f90, line 14: PUBLIC NAMELIST /B/ has member T2 with PRIVATE
components

(I don't know in how far "A" is valid or what happens if T1 or T2 contains
other type(*)s which are private.)

module x
  type tp1
    integer, private :: i
  end type tp1
  type tp2
    private
    integer :: i
  end type tp2
  type(tp1) :: t1
  type(tp2) :: t2
  integer :: j1,j2
  namelist /a/ t1,j
  namelist /b/ t2,j
end module x


-- 
           Summary: Wrongly accepts private items in public NAMELISTs
           Product: gcc
           Version: 4.3.0
            Status: UNCONFIRMED
          Keywords: accepts-invalid
          Severity: normal
          Priority: P3
         Component: fortran
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: burnus at gcc dot gnu dot org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32876

Reply via email to