(Motivated but independent from http://groups.google.com/group/comp.lang.fortran/browse_thread/thread/817234ccd2b3ae1b#)
The following program is rejected in gfortran until one adds a component. I agree that it is not particularly useful but I think it is standard conform. In any case the error message is bogus: type(t) function foo() 1 Error: The type for function 'foo' at (1) is not accessible module m type t end type t end module type(t) function foo() use m foo = t() end function foo -- Summary: Empty derived-type wrongly rejected as function return type Product: gcc Version: 4.5.0 Status: UNCONFIRMED Keywords: rejects-valid 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=41369