http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60289

--- Comment #2 from janus at gcc dot gnu.org ---
The error can easily be silenced with this patch:


Index: gcc/fortran/resolve.c
===================================================================
--- gcc/fortran/resolve.c    (revision 207896)
+++ gcc/fortran/resolve.c    (working copy)
@@ -6834,7 +6834,9 @@ resolve_allocate_expr (gfc_expr *e, gfc_code *code
       goto failure;
     }

-  if (code->ext.alloc.ts.type == BT_CHARACTER && !e->ts.deferred)
+  /* Check F08:C632.  */
+  if (code->ext.alloc.ts.type == BT_CHARACTER && !e->ts.deferred
+      && !UNLIMITED_POLY (e))
     {
       int cmp = gfc_dep_compare_expr (e->ts.u.cl->length,
                       code->ext.alloc.ts.u.cl->length);


But then one runs into an ICE in gimplify.c:


internal compiler error: Segmentation fault
   class(*), pointer :: P
 ^
0x93ec0f crash_signal
    /home/jweil/gcc49/trunk/gcc/toplev.c:337
0x7c9647 copy_if_shared_r
    /home/jweil/gcc49/trunk/gcc/gimplify.c:769
0xaf404b walk_tree_1(tree_node**, tree_node* (*)(tree_node**, int*, void*),
void*, pointer_set_t*, tree_node* (*)(tree_node**, int*, tree_node*
(*)(tree_node**, int*, void*), void*, pointer_set_t*))
    /home/jweil/gcc49/trunk/gcc/tree.c:10920
0xaf4208 walk_tree_1(tree_node**, tree_node* (*)(tree_node**, int*, void*),
void*, pointer_set_t*, tree_node* (*)(tree_node**, int*, tree_node*
(*)(tree_node**, int*, void*), void*, pointer_set_t*))
    /home/jweil/gcc49/trunk/gcc/tree.c:11201
0xaf4208 walk_tree_1(tree_node**, tree_node* (*)(tree_node**, int*, void*),
void*, pointer_set_t*, tree_node* (*)(tree_node**, int*, tree_node*
(*)(tree_node**, int*, void*), void*, pointer_set_t*))
    /home/jweil/gcc49/trunk/gcc/tree.c:11201
0xaf4254 walk_tree_1(tree_node**, tree_node* (*)(tree_node**, int*, void*),
void*, pointer_set_t*, tree_node* (*)(tree_node**, int*, tree_node*
(*)(tree_node**, int*, void*), void*, pointer_set_t*))
    /home/jweil/gcc49/trunk/gcc/tree.c:11025
0x7c9383 copy_if_shared
    /home/jweil/gcc49/trunk/gcc/gimplify.c:800
0x7c9383 unshare_body
    /home/jweil/gcc49/trunk/gcc/gimplify.c:815
0x7d0b9c gimplify_body(tree_node*, bool)
    /home/jweil/gcc49/trunk/gcc/gimplify.c:8539
0x7d0f37 gimplify_function_tree(tree_node*)
    /home/jweil/gcc49/trunk/gcc/gimplify.c:8708
0x6ce2f7 analyze_function
    /home/jweil/gcc49/trunk/gcc/cgraphunit.c:649
0x6cf337 analyze_functions
    /home/jweil/gcc49/trunk/gcc/cgraphunit.c:1017
0x6d0275 finalize_compilation_unit()
    /home/jweil/gcc49/trunk/gcc/cgraphunit.c:2320
0x837a74 write_global_declarations()
    /home/jweil/gcc49/trunk/gcc/langhooks.c:323

Reply via email to