D-Programming-Language/dmd — pull request #1155 by donc (2012-10-01 14:15:48+00:00)
Title: Fix issue 7810 [CTFE] Typesafe variadic function with array of structs

This was a problem with void-initialized static arrays. Both fixed-length arrays and struct literals are aggregate types with value semantics, and need to be treated in the same way. struct literals were done correctly, static arrays were not.

With something like int[2][2] x = void; the void literal is [[void,void], [void, void]]. The bug was that each [void,void] was the same, so after x[0]= [3,4], x was [[3,4], [3,4]], We need to create a new void literal for each element when it is one of these aggregate types with value semantics.