https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97896

--- Comment #3 from anlauf at gcc dot gnu.org ---
(In reply to anlauf from comment #2)
> Reverting the following snippet from my fix attempt for pr91651:

That snippet is necessary for the scalarizer during simplification.
The original ICE is coming from the assert in trans-expr.c:

11155     else
11156       {
11157         gcc_assert (lse.ss == gfc_ss_terminator
11158                     && rse.ss == gfc_ss_terminator);

Printing lse.ss and rse.ss for

  b = index ('xyxyz','yx', back=a)
  b = index ('xyxyz','yx', back=a, kind=4)

one sees that the first case without kind is fine, while the second case has

(gdb) p *rse.ss
$30 = {info = 0x288c1c0, dimen = 0, dim = {0 <repeats 15 times>}, loop_chain =
0x2814270, 
  next = 0x268eb80 <gfc_ss_terminator_var>, parent = 0x0, nested_ss = 0x0, 
  loop = 0x7fffffffcd90, is_alloc_lhs = 0, no_bounds_check = 0}

so something is screwing up the scalarization.

Reply via email to