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*)

Reply via email to