https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77604
Bug ID: 77604 Summary: ICE in get_frame_type, at tree-nested.c:208 Product: gcc Version: 7.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: fortran Assignee: unassigned at gcc dot gnu.org Reporter: gerhard.steinmetz.fort...@t-online.de Target Milestone: --- This snippet fails with an "**" operation : $ cat z1.f90 program p call s contains elemental function f(x, y) result(z) character(*), intent(in) :: x, y character(len(x)**len(y)) :: z z = x // y end subroutine g(x) character(*), intent(in) :: x(:) print *, 'inside g :', len(x), size(x), x end subroutine s call g( f(['ab'], ['xyz']) ) end end $ gfortran-7-20160911 -c z1.f90 z1.f90:1:0: program p internal compiler error: Segmentation fault 0xc2154f crash_signal ../../gcc/toplev.c:336 0xcb88aa get_frame_type ../../gcc/tree-nested.c:208 0xcb88aa get_chain_field ../../gcc/tree-nested.c:359 0xcbadc2 get_chain_field ../../gcc/tree-nested.c:357 0xcbadc2 get_nonlocal_debug_decl ../../gcc/tree-nested.c:834 0xcbb4c8 convert_nonlocal_reference_op ../../gcc/tree-nested.c:909 0xed8162 walk_tree_1(tree_node**, tree_node* (*)(tree_node**, int*, void*), void*, hash_set<tree_node*, default_hash_traits<tree_node*> >*, tree_node* (*)(tree_node**, int*, tree_node* (*)(tree_node**, int*, void*), void*, hash_set<tree_node*, default_hash_traits<tree_node*> >*)) ../../gcc/tree.c:11690 0x9a67f0 walk_gimple_op(gimple*, tree_node* (*)(tree_node**, int*, void*), walk_stmt_info*) ../../gcc/gimple-walk.c:203 0x9a6d6c walk_gimple_stmt(gimple_stmt_iterator*, tree_node* (*)(gimple_stmt_iterator*, bool*, walk_stmt_info*), tree_node* (*)(tree_node**, int*, void*), walk_stmt_info*) ../../gcc/gimple-walk.c:586 0x9a6f58 walk_gimple_seq_mod(gimple**, tree_node* (*)(gimple_stmt_iterator*, bool*, walk_stmt_info*), tree_node* (*)(tree_node**, int*, void*), walk_stmt_info*) ../../gcc/gimple-walk.c:51 0x9a6e12 walk_gimple_stmt(gimple_stmt_iterator*, tree_node* (*)(gimple_stmt_iterator*, bool*, walk_stmt_info*), tree_node* (*)(tree_node**, int*, void*), walk_stmt_info*) ../../gcc/gimple-walk.c:596 0x9a6f58 walk_gimple_seq_mod(gimple**, tree_node* (*)(gimple_stmt_iterator*, bool*, walk_stmt_info*), tree_node* (*)(tree_node**, int*, void*), walk_stmt_info*) ../../gcc/gimple-walk.c:51 0x9a6e12 walk_gimple_stmt(gimple_stmt_iterator*, tree_node* (*)(gimple_stmt_iterator*, bool*, walk_stmt_info*), tree_node* (*)(tree_node**, int*, void*), walk_stmt_info*) ../../gcc/gimple-walk.c:596 0x9a6f58 walk_gimple_seq_mod(gimple**, tree_node* (*)(gimple_stmt_iterator*, bool*, walk_stmt_info*), tree_node* (*)(tree_node**, int*, void*), walk_stmt_info*) ../../gcc/gimple-walk.c:51 0xcb74e1 walk_body ../../gcc/tree-nested.c:573 0xcb7538 walk_function ../../gcc/tree-nested.c:584 0xcb7538 walk_all_functions ../../gcc/tree-nested.c:649 0xcbf882 lower_nested_functions(tree_node*) ../../gcc/tree-nested.c:3187 0x83d546 cgraph_node::analyze() ../../gcc/cgraphunit.c:631 0x840b13 analyze_functions ../../gcc/cgraphunit.c:1086