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

--- Comment #7 from bin.cheng <amker.cheng at gmail dot com> ---
Hmm, this issue could be simply because chrec_fold_multiply doesn't use
sizetype as CHREC_RIGHT's type to build pointer type CHREC:

          return build_polynomial_chrec
            (CHREC_VARIABLE (op0),
             chrec_fold_multiply (type, CHREC_LEFT (op0), op1),
             chrec_fold_multiply (type, CHREC_RIGHT (op0), op1));

It should be fixed by using sizetype for pointer type CHREC node:

          return build_polynomial_chrec
            (CHREC_VARIABLE (op0),
             chrec_fold_multiply (type, CHREC_LEFT (op0), op1),
             chrec_fold_multiply (POINTER_TYPE_P (type) ? sizetype : type,
                                  CHREC_RIGHT (op0), op1));

I will test a patch.

Reply via email to