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