As I've said before, I am trying to get the GDC implementation that worked with 4.3, working with 4.4. The function it is compiling is to my mind not very well written - kind of mixed up. But the error message is even more confusing: -c ../../../libphobos/std/stream.d In file included from <builtin>:2: ../../../libphobos/std/stream.d: In member function ‘vreadf’: ../../../libphobos/std/stream.d:692: internal compiler error: in insert_into_preds_of_block, at tree-ssa-pre.c:3114 The offending code in tree-ssa-pre.c is: FOR_EACH_EDGE (pred, ei, block->preds) { pre_expr ae = avail[pred->src->index]; gcc_assert (get_expr_type (ae) == type || useless_type_conversion_p (type, get_expr_type (ae))); If anyone has any understanding of what is happening here and what the assert is intended to prevent, your help would be most welcome. Thanks Steve