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

            Bug ID: 115188
           Summary: [14/15 regression] invalid Thumb assembly for atomic
                    store in loop on ARMv6
           Product: gcc
           Version: 14.1.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: target
          Assignee: unassigned at gcc dot gnu.org
          Reporter: ebotcazou at gcc dot gnu.org
  Target Milestone: ---

This apparently comes from the fix for PR target/111235: the following code:

int data[4];

void init (unsigned int lb, unsigned int hb)
{
  for (unsigned int i = lb; i < hb; i++)
    __atomic_store_4 (&data[i], 0, __ATOMIC_RELAXED);
}

yields invalid assembly when compiled with -mthumb -mcpu=cortex-m0 -O2:

t.s: Assembler messages:
t.s:35: Warning: missing operand; zero assumed
t.s:35: Error: cannot use register index with PC-relative addressing -- `str
r1,r0!'

Reply via email to