https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68690
--- Comment #3 from Segher Boessenkool <segher at gcc dot gnu.org> --- This now compiles to main: .LCF1: 0: addis 2,12,.TOC.-.LCF1@ha addi 2,2,.TOC.-.LCF1@l .localentry main,.-main addis 9,2,.LC0@toc@ha # gpr load fusion, type long ld 9,.LC0@toc@l(9) addis 10,2,do_nothing@toc@ha li 3,0 addi 10,10,do_nothing@toc@l std 10,0(9) blr but the problem is still there, just this testcase is defeated; remove the assignment to fn to make the problem pop up again.