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

Reply via email to