> On Saturday 08 December 2007 12:10, Christoph Bartoschek wrote:
>
> In my opinion the problem is, that you have lost transitivity. Assume Word
If transitivity is lost, then it means fast_cmp is broken.
My current hypothesis is: the ordering of two N-bit signed words X, Y
cannot be correctly established by examining the sign of the N-bit
subtraction X - Y (which is what fast_cmp does). It is necessary to examine
N+1 bits of subtraction result to establish the correct ordering. I think
this is what John Reiser's comment about the carry flag means.
This seems to fit the facts best of all:
- Problem is not to do with gcc -fstrict-overflow.
* That is a recent phenomenon (gcc-4.3 ?) and #147545 was
reported in early July.
* I rebuilt V with gcc-4.3 -Wstrict-overflow=5 (max paranoia)
and got various warnings, but none about m_oset.c
- Problem is rarely seen because it requires entries in secVBitsTable
to have some specific relationship above and below the 0x8000'0000
midpoint line. Most programs don't use much of the address space
and so would be either entirely below or entirely above the line.
In any case PDBs are very rare.
- Problem happened w/ Wine because perhaps Wine is doing some
wierd address space games, and/or Tom is running a 4G+4G kernel, so
there is stuff above 0xC000'0000 when there isn't usually.
J
-------------------------------------------------------------------------
SF.Net email is sponsored by:
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://sourceforge.net/services/buy/index.php
_______________________________________________
Valgrind-developers mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/valgrind-developers