http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57896
--- Comment #17 from Uroš Bizjak <ubizjak at gmail dot com> --- Somehow we get old_size = 0 in gen_reg_rtx. It is calculated as: int old_size = crtl->emit.regno_pointer_align_length; Trivial patch that prevents this situation and fixes the problem. However, it is not clear to me if crtl->emit.regno_pointer_align_length should start larger than zero. --cut here-- Index: emit-rtl.c =================================================================== --- emit-rtl.c (revision 207935) +++ emit-rtl.c (working copy) @@ -903,6 +903,8 @@ gen_reg_rtx (enum machine_mode mode) char *tmp; rtx *new1; + if (old_size < 1) + old_size = 1; tmp = XRESIZEVEC (char, crtl->emit.regno_pointer_align, old_size * 2); memset (tmp + old_size, 0, old_size); crtl->emit.regno_pointer_align = (unsigned char *) tmp; --cut here--