The following out-of-bounds problem (in the if clause) is not detected:

  character, pointer :: ptr(:)
  allocate(ptr(9))
  ptr = transfer('Sample#0'//achar(0),ptr) ! Causes ICE
  if (any (ptr .ne. ['S','a','m','p','l','e','#','0'])) call abort
  end

NAG f95 finds:
  Rank 1 of array operand has extent 9 instead of 8


-- 
           Summary: Bounds-check of array-pointer == [ constructor ]
           Product: gcc
           Version: 4.3.0
            Status: UNCONFIRMED
          Keywords: diagnostic
          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=34741

Reply via email to