https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68986
Uroš Bizjak <ubizjak at gmail dot com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |hjl.tools at gmail dot com --- Comment #6 from Uroš Bizjak <ubizjak at gmail dot com> --- I was not able to reproduce the ICE with the first testcase from the Comment #4, but was able to trigger the ICE with the second testcase with both gcc-5 and gcc-6. We hit this corner case in i386.c: /* Emit prologue code to adjust stack alignment and setup DRAP, in case of DRAP is needed and stack realignment is really needed after reload */ if (stack_realign_drap) { int align_bytes = crtl->stack_alignment_needed / BITS_PER_UNIT; /* Only need to push parameter pointer reg if it is caller saved. */ if (!call_used_regs[REGNO (crtl->drap_reg)]) { /* Push arg pointer reg */ insn = emit_insn (gen_push (crtl->drap_reg)); RTX_FRAME_RELATED_P (insn) = 1; } ... Unfortunately, crtl->drap_reg is NULL at this point. CC author.