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

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |ASSIGNED
           Assignee|unassigned at gcc dot gnu.org      |rguenth at gcc dot 
gnu.org

--- Comment #8 from Richard Biener <rguenth at gcc dot gnu.org> ---
That is, I would say a better fix would be to analyze the chrec
as {4, +, -2}, thus in another type in the first place.

But then the dataref code has to deal with failures in the analysis
(there are also overflow conditions that are more or less correctly
handled).  You can see initialize_matrix_A results when not recursing
are immediately fed into int_cst_value - where there is also a possible
failure mode outlined:

          if (dump_file && (dump_flags & TDF_DETAILS))
            fprintf (dump_file, "affine-affine test failed: too many
variables.\n");
          *overlaps_a = conflict_fn_not_known ();
          *overlaps_b = conflict_fn_not_known ();
          *last_conflicts = chrec_dont_know;

so all is necessary is to check cst_and_fits_in_hwi and propagate the error
upward from initialize_matrix_A.

Reply via email to