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

            Bug ID: 112674
           Summary: [14 Regression] Compare-debug failure after recent
                    change on c6x
           Product: gcc
           Version: 14.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: debug
          Assignee: unassigned at gcc dot gnu.org
          Reporter: law at gcc dot gnu.org
  Target Milestone: ---

This patch:

commit 6bf66276e3e41d5d92f7b7260e98b6a111653805
Author: Richard Biener <rguent...@suse.de>
Date:   Wed Nov 22 11:10:41 2023 +0100

    tree-optimization/112344 - wrong final value replacement

    When performing final value replacement chrec_apply that's used to
    compute the overall effect of niters to a CHREC doesn't consider that
    the overall increment of { -2147483648, +, 2 } doesn't fit in
    a signed integer when the loop iterates until the value of the IV
    of 20.  The following fixes this mistake, carrying out the multiply
    and add in an unsigned type instead, avoiding undefined overflow
    and thus later miscompilation by path range analysis.

            PR tree-optimization/112344
            * tree-chrec.cc (chrec_apply): Perform the overall increment
            calculation and increment in an unsigned type.

            * gcc.dg/torture/pr112344.c: New testcase.

Is causing a compare-debug failure on the c6x port:

c6x-sim: gcc.dg/pr65779.c (test for excess errors)

I haven't dug into this any deeper.  It could well be a c6x bug in the end. 
While it may sound similar to pr109777, pr109777 has been debugged far enough
to  lay the blame on the bfin backend.

Reply via email to