With a recent gfortran, the following compiles, but generates the wrong
results:

MODULE T
  INTERFACE cp_log
     MODULE PROCEDURE cp_logger_log
  END INTERFACE

  TYPE cp_logger_type
    INTEGER :: a
  END TYPE cp_logger_type

  PUBLIC :: cp_log, cp_logger_type

CONTAINS

  SUBROUTINE cp_logger_log(logger)
    TYPE(cp_logger_type), POINTER ::logger
  END SUBROUTINE

  FUNCTION cp_get_default_logger() RESULT(res)
    TYPE(cp_logger_type), POINTER ::res
    NULLIFY(RES)
  END FUNCTION cp_get_default_logger

END MODULE T

USE T
 CALL cp_log(cp_get_default_logger())
END


-- 
           Summary: wrong code generated with gfortran
           Product: gcc
           Version: 4.3.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: fortran
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: jv244 at cam dot ac dot uk


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

Reply via email to