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