Intel® Fortran Compiler
Build applications that can scale for the future with optimized code designed for Intel® Xeon® and compatible processors.
28655 Discussions

ICE with DT procedure as argument length on intel64 ifort 11.1 073

jahern
Beginner
732 Views

Hello,I am getting an ICE on 64-bit Fedora 11 with ifort 11.1 (073). This is a test case:[fortran]MODULE tester IMPLICIT NONE TYPE :: Matrix REAL :: a(2,3) CONTAINS PROCEDURE :: NJ => GetNJ END TYPE Matrix CONTAINS PURE INTEGER FUNCTION GetNJ(mat) RESULT(ans) IMPLICIT NONE CLASS(Matrix), INTENT(IN) :: mat ans = SIZE(mat%a,2) END FUNCTION GetNJ SUBROUTINE MySub(a,x,y) IMPLICIT NONE TYPE(Matrix), INTENT(IN) :: a REAL, INTENT(IN) :: x(GetNJ(a)) ! OK REAL, INTENT(IN) :: y(a%NJ) ! ICE is here !... END SUBROUTINE MySub END MODULE tester [/fortran] I'm pretty sure the code is valid, but even if not, there should clearly not be an ICE. This error did not seem to have already been reported, but I easily may have missed it!Thanks,Jared

0 Kudos
10 Replies
jimdempseyatthecove
Honored Contributor III
732 Views
Try removing :: on line 4

TYPE :: Matrix

change to

TYPEMatrix

Jim Dempsey
0 Kudos
jahern
Beginner
732 Views
Thanks, I did miss that when I was creating this snippet from my true code (the type is actually extended). However, I still encounter the internal compiler error.
0 Kudos
Kevin_D_Intel
Employee
732 Views
Thank you for reporting this issue, Jared. I will try reproducing this and update again when I know more.
0 Kudos
Kevin_D_Intel
Employee
732 Views
This is also reproducible with newer compilers which is a little surprising sinceit seems like a case we would have seen/fixed already, but apparently not. Thanks again for reporting this and for the nice reproducer. I sent this to Development (see internal tracking # below) and will update as I learn more.

(Internal tracking id: DPD200160165) (Resolution Update on 10/14/2012): This defect is fixed in the Intel® Fortran Composer XE 2013 Initial Release (2013.0.0.079 - Linux)
0 Kudos
jahern
Beginner
732 Views
Thanks for looking into it!
0 Kudos
jahern
Beginner
732 Views
It's been a while - I had forgotten to check back on this issue. But from what I can tell, this code still has problems with Intel Fortran Composer XE 2011R9 on Win7/64. Was there a fix for this? I haven't found any references to DPD200160165.
0 Kudos
Steven_L_Intel1
Employee
732 Views
It has not been fixed yet. I have asked the developers for status.
0 Kudos
Steven_L_Intel1
Employee
732 Views
This has been fixed for a release later this year.
0 Kudos
Neil_Carlson
Beginner
732 Views
TYPE :: Matrix is a perfectly valid statement. The '::' is not required in this case, but it is allowed.
0 Kudos
Kevin_D_Intel
Employee
732 Views
The internal error reported in this thread is fixed in our current Intel® Fortran Composer XE 2013 Initial Release (2013.0.0.079 - Linux).
0 Kudos
Reply