https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88343
--- Comment #20 from Iain Sandoe <iains at gcc dot gnu.org> --- (In reply to Joseph S. Myers from comment #19) > Created attachment 45330 [details] > Bad assembly (from trunk r267560 with the patch still present) Thanks, Joseph, that's very helpful. .. so the code plainly uses pic base reg /_GLOBAL_OFFSET_TABLE_ and thus fails when it's not saved... .. the question to be addressed then is why crtl->uses_pic_offset_table not set in this case? (a question which perhaps has wider implications than this missed optimisation).