this is fixing a small problem with procedure pointer components
returning a derived type. If the result type is the same as the type
which contains the PPC, gfc_get_derived_type would enter an infinite
recursion loop. The patch handles this case in a similar fashion as
for pointer components, i.e. first making sure all the backend_decl's
of derived types are there, and then using those backend_decl's
instead of recursing to gfc_get_derived_type.
Regtested on x86_64-unknown-linux-gnu. Ok for trunk?