The following test case should be diagnosed as an error.  This is because the
type definition (e.g, X_t) is private, but the entity defined with it (abc) is
public.

module xyzzy
  implicit none
  private

  type X_t
    real :: y
    real :: z
  end type

  private :: X_t

  type(X_t), parameter, public :: abc = X_t (12.34, 56.78)

end module 

This was observed with several versions of gfortran, including the 4.1.0 IA64
release, the 4.3.0 20081222 snapshot for x86 windows, and the 4.4.0 20080219
snapshot for x86_64 linux.

Both ifort 10.1 and SGI IRIX f90 correctly reject the code.  Interestingly,
Salford 5.10 (wrongly) accepts it.


-- 
           Summary: Invalid-accepted - public entity with private type
                    should be diagnosed
           Product: gcc
           Version: 4.3.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: fortran
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: w6ws at earthlink dot net
 GCC build triplet: x86_64-unknown-linux-gnu
  GCC host triplet: x86_64-unknown-linux-gnu
GCC target triplet: x86_64-unknown-linux-gnu


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

Reply via email to