[Bug fortran/53298] New: ICE in gfc_conv_scalarized_array_ref for ARRAY + substring
burnus at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Wed May 9 17:12:00 GMT 2012
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53298
Bug #: 53298
Summary: ICE in gfc_conv_scalarized_array_ref for ARRAY +
substring
Classification: Unclassified
Product: gcc
Version: 4.8.0
Status: UNCONFIRMED
Keywords: ice-on-valid-code
Severity: normal
Priority: P3
Component: fortran
AssignedTo: unassigned@gcc.gnu.org
ReportedBy: burnus@gcc.gnu.org
Blocks: 45424
The following program segfaults. The problem is the expression
array(:)(1:)
^^^--<-- substring
This combination is seemingly not handled by gfc_conv_expr_descriptor.
At the end, one gets a segfault for:
gfc_conv_scalarized_array_ref (se=0x7fffffffcfe0, ar=0x1700538)
at fortran/trans-array.c:3016
3016 expr = ss->info->expr;
which is called via gfc_conv_array_ref <<< gfc_conv_variable <<<
gfc_conv_string_length <<< get_array_charlen <<< gfc_conv_expr_descriptor.
character(len=5) :: str(3)
call f(str(:))
contains
subroutine f(x)
character(len=*) :: x(:)
logical :: llll
print *, size(x(:)(1:))
end subroutine f
end
The program compiles flawlessly with NAG f95 and prints "3". It fails with GCC
4.1.2, 4.3.4, 4.8.0 and probably all other versions.
More information about the Gcc-bugs
mailing list