https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79069

--- Comment #10 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Seems the barrier after the unconditional __morestack call is removed by
rtl_tidy_fallthru_edge.

I think:
--- gcc/cfgrtl.c.jj     2017-01-01 12:45:35.000000000 +0100
+++ gcc/cfgrtl.c        2017-01-12 13:24:48.414579702 +0100
@@ -1794,6 +1794,10 @@ rtl_tidy_fallthru_edge (edge e)

       q = PREV_INSN (q);
     }
+  /* Unconditional jumps with side-effects (i.e. which we can't just delete
+     together with the barrier) should never have a fallthru edge.  */
+  else if (JUMP_P (q) && any_uncondjump_p (q))
+    return;

   /* Selectively unlink the sequence.  */
   if (q != PREV_INSN (BB_HEAD (c)))
should fix this.  Let me try that.

Reply via email to