http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55824
Bug #: 55824 Summary: [OOP] ICE with ALLOCATE and SOURCE= TRANSPOSE/RESHAPE Classification: Unclassified Product: gcc Version: 4.8.0 Status: UNCONFIRMED Keywords: ice-on-valid-code Severity: normal Priority: P3 Component: fortran AssignedTo: unassig...@gcc.gnu.org ReportedBy: bur...@gcc.gnu.org CC: ja...@gcc.gnu.org, pa...@gcc.gnu.org Created attachment 29057 --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=29057 Failing test case The following example by Reinhold Bader gives an ICE. It uses CLASS(*) but allegedly the issue also occurs with nonunlimited polymorphics. The ICE occurs for: class(*), allocatable :: x(:,:), y(:,:), z(:) ... allocate(y(3,3), source=transpose(x)) ! <<< ICE ... allocate(z(9), source=reshape(x, (/ 9 /))) ! <<< ICE Backtraces: 0x5fd05b gfc_conv_scalarized_array_ref ../../gcc/fortran/trans-array.c:3042 0x5fda71 gfc_conv_array_ref(gfc_se*, gfc_array_ref*, gfc_symbol*, locus*) ../../gcc/fortran/trans-array.c:3168 0x62ba7f gfc_conv_variable ../../gcc/fortran/trans-expr.c:1795 and 0x62794d gfc_conv_procedure_call(gfc_se*, gfc_symbol*, gfc_actual_arglist*, gfc_expr*, vec<tree_node*, va_gc, vl_embed>*) ../../gcc/fortran/trans-expr.c:4955 0x63f7b5 conv_generic_with_optional_char_arg ../../gcc/fortran/trans-intrinsic.c:4526 0x63f7b5 gfc_conv_intrinsic_function(gfc_se*, gfc_expr*) ../../gcc/fortran/trans-intrinsic.c:6306 0x628488 gfc_conv_function_expr ../../gcc/fortran/trans-expr.c:5524 0x628488 gfc_conv_expr(gfc_se*, gfc_expr*)