Inherited type bound generic operators used in an "elemental context" cause an ICE with 13.0.0.0.0.089.
MODULE m20121015 IMPLICIT NONE PRIVATE TYPE, ABSTRACT, PUBLIC :: parent CONTAINS PROCEDURE(parent_op), DEFERRED :: op GENERIC :: OPERATOR(.op.) => op END TYPE parent ABSTRACT INTERFACE ELEMENTAL FUNCTION parent_op(arg) RESULT(r) IMPORT :: parent IMPLICIT NONE CLASS(parent), INTENT(IN) :: arg REAL :: r END FUNCTION parent_op END INTERFACE TYPE, EXTENDS(parent), PUBLIC :: t CONTAINS PROCEDURE :: op => t_op END TYPE t CONTAINS ELEMENTAL FUNCTION t_op(arg) RESULT(r) CLASS(t), INTENT(IN) :: arg REAL :: r r = 1.0 END FUNCTION t_op END MODULE m20121015 PROGRAM TheWifeDrankAllMyWine USE m20121015 IMPLICIT NONE TYPE(t) :: t_array(10) !**** PRINT *, .op. t_array END PROGRAM TheWifeDrankAllMyWine
>ifort /check:all /warn:all /standard-semantics ElementalOperator.f90 Intel(R) Visual Fortran Compiler XE for applications running on IA-32, Version 13.0.0.089 Build 20120731 Copyright (C) 1985-2012 Intel Corporation. All rights reserved. ElementalOperator.f90(26): remark #7712: This variable has not been used. [ARG] ELEMENTAL FUNCTION t_op(arg) RESULT(r) --------------------------^ ElementalOperator.f90(38): catastrophic error: **Internal compiler error: internal abort** Please report this error alon g with the circumstances in which it occurred in a Software Problem Report. Note: File and line given may not be explic it cause of this error. compilation aborted for ElementalOperator.f90 (code 1)
Unrelated, but 13.0.0 has developed a habit here of complaining "Fatal compilation error: Out of memory asking for 2097160." after sending my machine into a swapping frenzy, Same number, different projects with basically unrelated source. Remarkable.



