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