[Bug fortran/45740] New: PROCEDURE POINTER and PROTECTED: Accepts/ICEs on invalid code

burnus at gcc dot gnu dot org gcc-bugzilla@gcc.gnu.org
Tue Sep 21 12:32:00 GMT 2010


>From Fortran 2008:

C549 An entity with the PROTECTED attribute shall be a procedure pointer or
variable.

C551 A nonpointer object that has the PROTECTED attribute and is accessed by
use association shall not appear in a variable definition context (16.6.7) or
as the data-target or proc-target in a pointer-assignment-stmt.

C552 A pointer that has the PROTECTED attribute and is accessed by use
association shall not appear in a pointer association context (16.6.8).


module m
  procedure(), pointer :: p, p2
  protected :: p
end module m

subroutine one
  use m
  procedure(), pointer :: ptr1 => p  ! Invalid
end subroutine one

subroutine two
  use m
  procedure(), pointer :: ptr2
  ptr2 => p  ! Invalid
end subroutine two

subroutine three
  use m
  procedure(), pointer :: ptr3 => p2  ! Valid
  call ptr3()  ! ICE, related to PR 45290
! internal compiler error: in record_reference, at cgraphbuild.c:60
end subroutine three


-- 
           Summary: PROCEDURE POINTER and PROTECTED: Accepts/ICEs on invalid
                    code
           Product: gcc
           Version: 4.6.0
            Status: UNCONFIRMED
          Keywords: ice-on-valid-code, 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=45740



More information about the Gcc-bugs mailing list