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

Reply via email to