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

Reply via email to