https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116329
Richard Earnshaw <rearnsha at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Resolution|--- |WONTFIX Status|UNCONFIRMED |RESOLVED --- Comment #4 from Richard Earnshaw <rearnsha at gcc dot gnu.org> --- Direct tail-calls rely on having a usable direct-branch instruction. Cortex-m0+ (armv6-m) only has a 16-bit pc-relative direct-branch instruction, which has an effective branch range of about +/- 2kbytes from the current PC value (the BL instruction has a range of +/-4Mb). Even modest binaries on these platforms can easily exceed this limit and the result would be branches that are out of range and probably unfixable by the linker. We thus do not even try to support tail-calls on this platform.