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

jcmvbkbc at gcc dot gnu.org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|RESOLVED                    |UNCONFIRMED
         Resolution|FIXED                       |---

--- Comment #5 from jcmvbkbc at gcc dot gnu.org ---
(In reply to Andrew Pinski from comment #3)
> I DON'T think it is a GCC issue. The code is broken.

Even if I remove all attributes from this function I see this issue:

static void bitmap_replace(unsigned long *dst,
      const unsigned long *old,
      const unsigned long *new,
      const unsigned long *mask,
      unsigned int nbits)
{
 if ((__builtin_constant_p(nbits) && (nbits) <= 32 && (nbits) > 0))
  *dst = (*old & ~(*mask)) | (*new & *mask);
 else
  __bitmap_replace(dst, old, new, mask, nbits);
}

Why is it broken?

Reply via email to