http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56156



Tobias Burnus <burnus at gcc dot gnu.org> changed:



           What    |Removed                     |Added

----------------------------------------------------------------------------

            Summary|Reject INTERFACE blocks in  |Reject calls to external

                   |procedures which import     |procedures using non-module

                   |local nonseq. TYPE decls    |declared TYPEs



--- Comment #2 from Tobias Burnus <burnus at gcc dot gnu.org> 2013-01-30 
17:39:37 UTC ---

Actually, the INTERFACE might be even valid. (Cf. discussion at c.l.f)



A simpler approach would be to just reject



  call s()    and    call bar(s)



where "s" is declared via an INTERFACE, is not a procedure pointer nor a dummy

argument and uses as result value or dummy argument an extensible derived type

which is not declared in the specification part of a module.





Additionally, besides INTERFACE, also implicit typing can lead to invalid code,

if one implicitly types the function result. (It probably requires an internal

procedure where the type is declared in the enclosing procedure.)

Reply via email to