The following program segfaults. The problem is the expression
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)
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)
character(len=*) :: x(:)
logical :: llll
print *, size(x(:)(1:))
end subroutine f
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.
Also looks like something that we could include with the array descritor reform.
The ICE occurs also with the fortran-dev branch (r198346 with the patch at http://gcc.gnu.org/ml/fortran/2013-04/msg00237.html).