https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77300
Aurelien Jarno <aurelien at aurel32 dot net> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |aurelien at aurel32 dot net --- Comment #1 from Aurelien Jarno <aurelien at aurel32 dot net> --- I have tried to identified when this behavior has been introduced. It appears that even GCC 4.9 is producing similar code. However what cause ld to reject it is the following change in the assembly code: - .text + .section .text._ZN1HIiE5m_fn4ERK1G.isra.1,"axG",@progbits,_ZN1HIiE5m_fn5ERK1G,comdat It seems the optimization is somehow correct when all the code is in the same section, but that's no the case anymore when it is in multiple sections.