See thread starting at http://j3-fortran.org/pipermail/j3/2010-August/003747.html
The first example is valid (state == 0), the second valid (state /= 0), and the third one is invalid. gfortran produces, http://j3-fortran.org/pipermail/j3/2010-August/003753.html, 0 <crash> <crash>. Expected: The second example produces state /= 0. Variant (works, should be state == 0): http://j3-fortran.org/pipermail/j3/2010-August/003754.html The problem is that our array descriptor does not save whether a variable has been allocated or just associated with a named target. For the TR descriptor, mentioned in the last link, cf. http://j3-fortran.org/pipermail/interop-tr/2010-August/000163.html -- Summary: DEALLOCATE: No error when deallocating a target Product: gcc Version: 4.6.0 Status: UNCONFIRMED Keywords: wrong-code Severity: normal Priority: P3 Component: fortran AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: burnus at gcc dot gnu dot org BugsThisDependsOn: 37577 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45417