https://gcc.gnu.org/bugzilla/show_bug.cgi?id=121719
Jakub Jelinek <jakub at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |jakub at gcc dot gnu.org --- Comment #1 from Jakub Jelinek <jakub at gcc dot gnu.org> --- This is just a bogus testcase. Inline asm doesn't prevent inlining, so the function can be both inlined into main and emitted out of line, which means you get 2 definitions of the same symbol. Use 1: and b.ne 1b instead of loop: and b.ne loop, or use loop%= or some other way to allow it to be assembled multiple times.