Hi, the following code produces an ICE.
Module MyModule implicit none private Type ,public :: MyType integer :: N = 2 contains procedure :: DoSomething End Type Interface Pure Module Function DoSomething( This, Inp ) result(Out) class(MyType) ,intent(in) :: This integer ,dimension(This%N) ,intent(in) :: Inp integer ,dimension(This%N) :: Out End Function End Interface End Module Submodule(MyModule) MySubModule implicit none contains ! ! WORKS ! Pure Module Function DoSomething( This, Inp ) result(Out) ! class(MyType) ,intent(in) :: This ! integer ,dimension(This%N) ,intent(in) :: Inp ! integer ,dimension(This%N) :: Out ! Out = Inp * This%N ! End Function ! DO NOT WORKS Module Procedure DoSomething Out = Inp * This%N End Procedure End Submodule Program Main use MyModule ,only: MyType type(MyType) :: Obj write(*,* ) Obj%DoSomething([1,2]) End Program
using ifort version 17.0.4.
The error comes from the "Module Procedure" ... "End Procedure" form for declaring submodule procedures.
If The procedure interface is repeated, then the error goes away.
I thought initially that this error was related to issue DPD200413234.
It's unfortunate but the problem is present in Intel Fortran compiler 18 Beta as well.
If you follow other threads, you may have noticed Intel now expects you to submit an incident for issues of interest to you at the Intel Online Service Center (OSC):
The forum can help with discussions and so forth. But note reporting an ICE on the forum may no longer lead to a tracking incident with the development.
If you're keen on someone from Intel to look at this ICE, your best bet will be to submit it at the OSC.
Thanks FlyingHermes for the report. I appreciate it very much to have 'issues' reported here in the forum too because at the moment, we customers have no other possibility to see, if issues are already filed or not. This knowledge helps me, not to spend more time than necessary to file an issue on OSC or to think on workarounds. Hopefully there's time enough for the Intel team to fix it for PSXE 18 release. Good luck, Johannes
Just keep in mind that it's often not possible to know if you have the exact same issue for an ICE and if you encounter an ICE your first step should be to report it to Intel. Simply posting in the forum and hoping it will be picked up, or worse, seeing another thread that you think is the same problem and waiting for the fix, is counterproductive.
The ICE has been reported on Intel OSC.
Thank you for reporting the bug on OSC. Unfortunately, there is not enough time to fix it for 18.0 initial release. However, the fix will be included in future releases.