digitalmars.D.bugs - Internal error: ..\ztc\cgcs.c 213
- Alex Stevenson (27/27) Jan 14 2006 The following function crashes DMD 0.143 on WinXP SP2:
- Walter Bright (3/5) Jan 15 2006 It's a known problem, the op= operators fail for bit operations.
The following function crashes DMD 0.143 on WinXP SP2:
bit[] bit_union( bit[] alpha, bit[] beta )
in
{
assert( alpha.length == beta.length );
assert( alpha !is null );
assert( beta !is null );
}
body
{
bit[] output = alpha.dup;
foreach( int pos, bit val; beta )
output[pos] |= val; // <-- X
return output;
}
replacing the line marked X with an empty body or:
output[pos] = cast(bit) (val | output[pos]);
Seems to fix it. Though for some reason I need that cast or I get
yhc\regcodefrag.d(288): cannot implicitly convert expression
(cast(int)(val) | cast(int)((output)[(pos)])) of type int to bit
A quick google shows that the same internal error occured in this post:
http://www.digitalmars.com/d/archives/digitalmars/D/25575.html - seems
to be a similar problem, {|,^}= to a bit array member.
Can't find an entry in the change log for it being fixed though, so I
guess this could well be a duplicate.
Jan 14 2006
"Alex Stevenson" <ans104 cs.york.ac.uk> wrote in message news:dqb7bs$179$1 digitaldaemon.com...Can't find an entry in the change log for it being fixed though, so I guess this could well be a duplicate.It's a known problem, the op= operators fail for bit operations.
Jan 15 2006








"Walter Bright" <newshound digitalmars.com>