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.

Reply via email to