http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46017

           Summary: Reject  ALLOCATE(a, a%b) as  "a%b" depends on the
                    allocation status of "a"
           Product: gcc
           Version: 4.6.0
            Status: UNCONFIRMED
          Keywords: diagnostic
          Severity: enhancement
          Priority: P3
         Component: fortran
        AssignedTo: unassig...@gcc.gnu.org
        ReportedBy: bur...@gcc.gnu.org


Follow up to PR 42647 comment 11

  allocate(a1, a1%b1, a1%b1%c1)

is invalid as it violates:

"An allocate-object [...] shall not depend [...] on the [...] allocation status
[...] of any allocate-object in the same ALLOCATE statement."

(F2008, "6.7.1 ALLOCATE statement" first paragraph after C644.)


The solution is to write three independent ALLOCATE statements. I think this
particular case could be compile-time detectable.

Cf. also http://gcc.gnu.org/ml/fortran/2010-10/msg00159.html (contains quote
from the F2003 handbook.)

Full test case: PR 42647 comment 10

Reply via email to