Created attachment 803 [details] Patch against dmd r737, handles typeCombine errors In-place array operation "x[] op= y" causes a segfault if the types of x and y are incompatible for that array op. ---------- void main() { int[] arr; arr[] *= 1.5; // (4) } ---------- % dmd -o- -c test.d test.d(4): Error: incompatible types for ((arr[]) *= (1.5)): 'int[]' and 'double' zsh: segmentation fault (core dumped) dmd -o- -c test.d ---------- The segfault happens in BinExp::arrayOp() when its type is TypeError because of the incompatible types. The proposed patch makes it sure that the error condition is handled before arrayOp().
http://www.dsource.org/projects/dmd/changeset/753