https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117901
Bug ID: 117901 Summary: class_transformational_1.f90 with -O3 and -fcheck=bounds gives ICE in make_ssa_name_fn Product: gcc Version: 15.0 Status: UNCONFIRMED Keywords: ice-on-valid-code Severity: normal Priority: P3 Component: fortran Assignee: unassigned at gcc dot gnu.org Reporter: pault at gcc dot gnu.org Target Milestone: --- The ICE only occurs with -O3 and -fcheck=bounds. Changing 'arg' in 'class_rebar' and 'unlimited_rebar' makes the problem go away. It seems that stashing the class argument in a GFC_DECL_SAVED_DESCRIPTOR () and turning descriptor into a g77 type array (GFC_ARRAY_TYPE_P) is the ultimate cause of the problem. I have never understood why this is necessary for assumed shape class arguments. I guess that now is the time to find out :-( Errors appear below. Paul [pault@pc30 pr102689]$gfc15 -Wall $TEST/class_transformational_1.f90 -O3 -fdump-tree-original -fcheck=bounds rm: cannot remove '*.mod': No such file or directory f951: internal compiler error: in make_ssa_name_fn, at tree-ssanames.cc:355 0x26af01e internal_error(char const*, ...) ../../gcc/gcc/diagnostic-global-context.cc:517 0x99ef6b fancy_abort(char const*, int, char const*) ../../gcc/gcc/diagnostic.cc:1696 0x894512 make_ssa_name_fn(function*, tree_node*, gimple*, unsigned int) ../../gcc/gcc/tree-ssanames.cc:355 0x11eb57b make_ssa_name(tree_node*, gimple*) ../../gcc/gcc/tree-ssanames.h:99 0x11eb57b remap_ssa_name ../../gcc/gcc/tree-inline.cc:238 0x11ef257 copy_tree_body_r(tree_node**, int*, void*) ../../gcc/gcc/tree-inline.cc:1227 0x14f522c walk_tree_1(tree_node**, tree_node* (*)(tree_node**, int*, void*), void*, hash_set<tree_node*, false, default_hash_traits<tree_node*> >*, tree_node* (*)(tree_node**, int*, tree_node* (*)(tree_node**, int*, void*), void*, hash_set<tree_node*, false, default_hash_traits<tree_node*> >*)) ../../gcc/gcc/tree.cc:11520 0x14f5389 walk_tree_1(tree_node**, tree_node* (*)(tree_node**, int*, void*), void*, hash_set<tree_node*, false, default_hash_traits<tree_node*> >*, tree_node* (*)(tree_node**, int*, tree_node* (*)(tree_node**, int*, void*), void*, hash_set<tree_node*, false, default_hash_traits<tree_node*> >*)) ../../gcc/gcc/tree.cc:11754 0x11e9f9d remap_type_1 ../../gcc/gcc/tree-inline.cc:596 0x11ea353 remap_type(tree_node*, copy_body_data*) ../../gcc/gcc/tree-inline.cc:714 0x11efffc remap_gimple_op_r ../../gcc/gcc/tree-inline.cc:1108 0x14f522c walk_tree_1(tree_node**, tree_node* (*)(tree_node**, int*, void*), void*, hash_set<tree_node*, false, default_hash_traits<tree_node*> >*, tree_node* (*)(tree_node**, int*, tree_node* (*)(tree_node**, int*, void*), void*, hash_set<tree_node*, false, default_hash_traits<tree_node*> >*)) ../../gcc/gcc/tree.cc:11520 0x14f5389 walk_tree_1(tree_node**, tree_node* (*)(tree_node**, int*, void*), void*, hash_set<tree_node*, false, default_hash_traits<tree_node*> >*, tree_node* (*)(tree_node**, int*, tree_node* (*)(tree_node**, int*, void*), void*, hash_set<tree_node*, false, default_hash_traits<tree_node*> >*)) ../../gcc/gcc/tree.cc:11754 0xdea0a5 walk_gimple_op(gimple*, tree_node* (*)(tree_node**, int*, void*), walk_stmt_info*) ../../gcc/gcc/gimple-walk.cc:212 0x11ed1cf remap_gimple_stmt ../../gcc/gcc/tree-inline.cc:1998 0x11f0723 copy_bb ../../gcc/gcc/tree-inline.cc:2079 0x11f23b2 copy_cfg_body ../../gcc/gcc/tree-inline.cc:3107 0x11f23b2 copy_body ../../gcc/gcc/tree-inline.cc:3360 0x11f53a4 tree_function_versioning(tree_node*, tree_node*, vec<ipa_replace_map*, va_gc, vl_embed>*, ipa_param_adjustments*, bool, bitmap_head*, basic_block_def*) ../../gcc/gcc/tree-inline.cc:6454 0xc29e4b cgraph_node::materialize_clone() ../../gcc/gcc/cgraphclones.cc:1168