> 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
Valgrind-developers@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/valgrind-developers

Reply via email to