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