This test case is invalid. It is rejected with an error message that is nonsense in this context.
program test implicit none type line_struct integer :: width = 10 end type type symbol_struct integer :: typee = 10 end type type curve_struct type (line_struct) line type (symbol_struct) symbol end type type (curve_struct) curve namelist / params / curve ! open (1, file = 'test.nml') read (1, nml = params) print *, curve(1)%symbol%typee end program $ gfc -g test.f90 test.f90:20.17: namelist / params / curve 1 Error: PROCEDURE attribute conflicts with NAMELIST attribute in 'curve' at (1) Another example is: program test2 implicit none type line_struct integer :: width = 10 end type type symbol_struct integer :: typee = 10 end type type curve_struct type (line_struct) line type (symbol_struct) symbol end type type (curve_struct) curve print *, curve(1)%symbol%typee end program $ gfc -g test2.f90 /tmp/ccuBUha0.o: In function `test': /home/jerry/prs/pr45532/pr45532.f90:20: undefined reference to `curve_' collect2: ld returned 1 exit status -- Summary: Bogus error about procedure attribute Product: gcc Version: 4.6.0 Status: UNCONFIRMED Keywords: diagnostic Severity: normal Priority: P3 Component: fortran AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: jvdelisle at gcc dot gnu dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45608