This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug fortran/78092] New: ICE when calling SIZEOF on CLASS(*) entry
- From: "holysword at inbox dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Mon, 24 Oct 2016 09:37:19 +0000
- Subject: [Bug fortran/78092] New: ICE when calling SIZEOF on CLASS(*) entry
- Auto-submitted: auto-generated
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78092
Bug ID: 78092
Summary: ICE when calling SIZEOF on CLASS(*) entry
Product: gcc
Version: 6.1.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: fortran
Assignee: unassigned at gcc dot gnu.org
Reporter: holysword at inbox dot com
Target Milestone: ---
The following test program returns an ICE at line 14 for all versions of
gfortran I have tested (up to 6.1)
PROGRAM test_stuff
IMPLICIT NONE
INTEGER :: ivar1(2,3), ivar2
ivar1 = 6
CALL poly_sizeof(ivar1, ivar2)
PRINT*, 'ivar2: ', ivar2
CONTAINS
SUBROUTINE poly_sizeof(arg1,arg2)
CLASS(*), INTENT(IN) :: arg1(:,:)
INTEGER, INTENT(OUT) :: arg2
arg2 = SIZEOF(arg1(1,1))
END SUBROUTINE
END PROGRAM test_stuff
Changing the type of arg1 in line 12 to INTEGER compiles the program and gives
the expected result. Changing line 14 to "SIZEOF(arg1)" also works. The problem
seems to be specific for when you require the size of a single element of an
array of unlimited polymorphic variables.