http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51713
Bug #: 51713 Summary: Type mismatch for polymorphic dummy arguments depending on "use" path Classification: Unclassified Product: gcc Version: 4.6.2 Status: UNCONFIRMED Severity: normal Priority: P3 Component: fortran AssignedTo: unassig...@gcc.gnu.org ReportedBy: b...@stellardeath.org Created attachment 26204 --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=26204 Test case, only compiles when changed according to the comments within I get a compile-time type-mismatch error for a subroutine usage depending on how I import the module containing the derived type declaration. The subroutine is declared to return a class(mytype_t) pointer, it does so by associating a pointer to a type(mytype_specific_t), an extension of type(mytype_t). The definition of type(mytype_specific_t) is in another module, if I now "use" this module from within the subroutine itself, I get the following error: $> gfortran -g3 -fcheck=all -pedantic typetest.f90 -o typetest typetest.f90:42.18: call get_mytype(mytype) 1 Error: Actual argument to 'mytype' at (1) must have the same declared type However, If I put the "use" statement in the module enclosing thus subroutine, it compiles. I think this is an error, as the definition of type(mytype_specific_t) should not be necessary outside of the subroutine. As a source file says more than thousand words, see the attached file on which I get the error. Regards, Lorenz