http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59886
--- Comment #7 from Jakub Jelinek <jakub at gcc dot gnu.org> --- Created attachment 31900 --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=31900&action=edit gcc49-pr59886.patch Untested partial patch. I believe we want to increment the num_split_elts for all the elements in the range, not just the first one. And I think we need a loop around the inner split_nonconstant_init_1 emitted code, e.g. as done in the attached patch (completely untested). What the patch doesn't handle and probably has to is a cleanup for it though, which if the construction throws in the second or later iteration will just destruct everything the earlier iterations constructed, right? I think the current iteration will be already properly destructed (or not constructed at all). Jason, can you please have a look and take this over?