https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66523
--- Comment #4 from Jack Howarth <howarth.at.gcc at gmail dot com> --- FYI, Apple's response on radar was... This is correct behavior from the assembler. The GNU objc runtime is doing bad things here by assuming an assembler local symbol (any symbol starting with “L”) is not, in fact, assembler local and will instead live on for the linker to see. We advise you don’t do that.