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!'