https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118783
Bug ID: 118783
Summary: CLASS, pointer association, and an array element of a
component.
Product: gcc
Version: 15.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: fortran
Assignee: unassigned at gcc dot gnu.org
Reporter: kargls at comcast dot net
Target Milestone: ---
Created attachment 60412
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=60412&action=edit
failing code with ICE
I have no idea if the code in the attached array_element_test.f90
is conforming, but it most certainly not cause an ICE. In addition,
I would have guessed that array_element_test.f90 and scalar_test.f90
would agree. For scalar_test.f90, 13, 14, and head all compile the
code and execute as one might expect.
% gfortran13 -o z scalar_test.f90 && ./z
% gfortran14 -o z scalar_test.f90 && ./z
% gfcx -o z scalar_test.f90 && ./z
% gfortran13 -o z array_element_test.f90 && ./z
STOP 1
% gfortran14 -o z array_element_test.f90 && ./z
STOP 1
% gfcx -o z array_element_test.f90 && ./z
array_element_test.f90:33:12:
33 | if (.not. associated(p_foo, the_baz%the_foos(3))) stop 1
| ^
internal compiler error: in decompose, at wide-int.h:1049
0x273069a internal_error(char const*, ...)
../../gccx/gcc/diagnostic-global-context.cc:517
0x986716 fancy_abort(char const*, int, char const*)
../../gccx/gcc/diagnostic.cc:1722
0x8cf3ef wi::int_traits<generic_wide_int<wide_int_ref_storage<false, false> >
>::decompose(long*, unsigned int, generic_wide_int<wide_int_ref_storage<false,
false> > const&)
../../gccx/gcc/wide-int.h:1049
0x8d089b wi::int_traits<generic_wide_int<wide_int_storage> >::decompose(long*,
unsigned int, generic_wide_int<wide_int_storage> const&)
../../gccx/gcc/tree.h:3833
0x8d089b wide_int_ref_storage<true,
false>::wide_int_ref_storage<generic_wide_int<wide_int_storage>
>(generic_wide_int<wide_int_storage> const&, unsigned int)
../../gccx/gcc/wide-int.h:1099
0x8d089b generic_wide_int<wide_int_ref_storage<true, false>
>::generic_wide_int<generic_wide_int<wide_int_storage>
>(generic_wide_int<wide_int_storage> const&, unsigned int)
../../gccx/gcc/wide-int.h:855
0x8d089b wi::binary_traits<generic_wide_int<wide_int_storage>,
generic_wide_int<wide_int_storage>,
wi::int_traits<generic_wide_int<wide_int_storage> >::precision_type,
wi::int_traits<generic_wide_int<wide_int_storage>
>::precision_type>::result_type
wi::bit_and_not<generic_wide_int<wide_int_storage>,
generic_wide_int<wide_int_storage> >(generic_wide_int<wide_int_storage> const&,
generic_wide_int<wide_int_storage> const&)
../../gccx/gcc/wide-int.h:2779
0x8d089b gimple_simplify_240(gimple_match_op*, gimple**, tree_node*
(*)(tree_node*), tree_node*, tree_node**, tree_code)
/usr/home/sgk/gcc/objx/gcc/gimple-match-4.cc:3538
0x174aec7 gimple_simplify_NE_EXPR(gimple_match_op*, gimple**, tree_node*
(*)(tree_node*), code_helper, tree_node*, tree_node*, tree_node*)
/usr/home/sgk/gcc/objx/gcc/gimple-match-1.cc:13713
0x1afaf2d gimple_resimplify2
../../gccx/gcc/gimple-match-exports.cc:1052
0x1afbcad gimple_simplify(gimple*, gimple_match_op*, gimple**, tree_node*
(*)(tree_node*), tree_node* (*)(tree_node*))
../../gccx/gcc/gimple-match-exports.cc:919
0xdc8f47 fold_stmt_1
../../gccx/gcc/gimple-fold.cc:6638
0xe26df0 gimplify_modify_expr
../../gccx/gcc/gimplify.cc:7367
0xe0e153 gimplify_expr(tree_node**, gimple**, gimple**, bool (*)(tree_node*),
int)
../../gccx/gcc/gimplify.cc:19324
0xe1a6ce gimplify_stmt(tree_node**, gimple**)
../../gccx/gcc/gimplify.cc:8313
0xe1a6ce gimplify_and_add(tree_node*, gimple**)
../../gccx/gcc/gimplify.cc:547
0xe1a6ce internal_get_tmp_var
../../gccx/gcc/gimplify.cc:706
0xe0db70 get_formal_tmp_var(tree_node*, gimple**)
../../gccx/gcc/gimplify.cc:732
0xe0db70 gimplify_expr(tree_node**, gimple**, gimple**, bool (*)(tree_node*),
int)
../../gccx/gcc/gimplify.cc:20386
0xe0d9ea gimplify_expr(tree_node**, gimple**, gimple**, bool (*)(tree_node*),
int)
../../gccx/gcc/gimplify.cc:20147