On 03/18/10 11:53, Steve Teale wrote:
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.
Looks like it's trying to catch cases where types do not match. I'm
pretty sure PRE isn't going to insert type conversions, so the types
must match -- presumably the assert indicates that code elsewhere is
supposed to ensure the types match and when the assert triggers that
indicates a bug elsewhere in PRE.
jeff