namelist_33.f90

来自「用于进行gcc测试」· F90 代码 · 共 71 行

F90
71
字号
! { dg-do compile }!! PR fortran/32876 - accepts private items in public NAMELISTs!! USE-associated types with private components may! not be used in namelists -- anywhere.!MODULE types  type :: tp4    PRIVATE    real :: x    integer :: i  end type  ! nested type  type :: tp3    real :: x    integer, private :: i  end type  type :: tp2    type(tp3) :: t  end type  type :: tp1    integer :: i    type(tp2) :: t  end typeEND MODULEMODULE nml  USE types  type(tp1) :: t1  type(tp4) :: t4  namelist /a/ t1          ! { dg-error "use-associated PRIVATE components" }  namelist /b/ t4          ! { dg-error "use-associated PRIVATE components" }  integer, private :: i  namelist /c/ i           ! { dg-error "was declared PRIVATE and cannot be member of PUBLIC namelist" }contains  subroutine y()   type(tp2) :: y2   type(tp3) :: y3    namelist /nml2/ y2     ! { dg-error "has use-associated PRIVATE components " }    namelist /nml3/ y3     ! { dg-error "has use-associated PRIVATE components " }  end subroutineEND MODULEprogram xxx  use types  type :: tp5    TYPE(tp4) :: t        ! nested private components  end type  type(tp5) :: t5  namelist /nml/ t5       ! { dg-error "has use-associated PRIVATE components" }contains  subroutine z()    namelist /nml2/ t5    ! { dg-error "has use-associated PRIVATE components" }  end subroutineend program! { dg-final { cleanup-modules "types nml" } }

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?