https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63371
Bug ID: 63371 Summary: kind() with function name (not call) as argument Product: gcc Version: 4.9.0 Status: UNCONFIRMED Keywords: accepts-invalid Severity: normal Priority: P3 Component: fortran Assignee: unassigned at gcc dot gnu.org Reporter: burnus at gcc dot gnu.org >From https://groups.google.com/forum/#!topic/comp.lang.fortran/lbaOSWKSmhQ That's either a wrong-code or accepts-invalid issue, it requires some digging. But the output "0" is surely wrong and if it is valid, it makes only sense for functions and one has to be careful with generics. Example, which prints "0" instead of "2". Using a subroutine, it is even accepted instead of plainly rejected (hence accepts-invalid): INTERFACE FUNCTION f() INTEGER(SELECTED_INT_KIND(4)) :: f END FUNCTION f END INTERFACE PRINT *, KIND(f) END ! (just to provide a definition) FUNCTION f() INTEGER(SELECTED_INT_KIND(4)) :: f END FUNCTION f