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

--- Comment #3 from qinzhao at gcc dot gnu.org ---
(In reply to uecker from comment #2)
> I guess you need to use c_fully_fold

Yes. thanks for the hints.

in c_fully_fold, it assumes:

  /* Operands of variable-length expressions (function calls) have
     already been folded, as have __builtin_* function calls, and such
     expressions cannot occur in constant expressions.  */
  if (kind == tcc_vl_exp)
    {
      *maybe_const_operands = false;
      ret = fold (expr);
      goto out;
    }

Therefore, when build call to .ACCESS_WITH_SIZE, we should fully_fold its
operands before building the call.

Reply via email to