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

Reply via email to