|
From: Julian S. <js...@ac...> - 2009-07-17 11:47:41
|
Hi Josef,
Yes, you're completely correct.
> (gdb) p *cas
> $2 = {oldHi = 4294967295, oldLo = 4, end = Iend_LE, addr = 0x3833e5f8,
> expdHi = 0x0, expdLo = 0x3833e6e8, dataHi = 0x0, dataLo = 0x3833e6d0}
>
> Both cas->expdHi and cas->dataHi are 0, leading to the crash in
> deepCopyIRExpr.
>
> Is it enough to change this to
I think so. I'll do some more testing this afternoon, though.
Interesting that this never failed in my testing. It can only happen
when there is a cmpxchg8b in 32-bit code in a single-basic-block loop
that the ir optimiser decides to unroll. I guess this never happened
in the testing I did, which is mostly 64-bit.
J
|