On Thu, 20 May 2010 00:54:45 +0200, Michael wrote: > If I put the printfs in front of the if-statement, the zoom problem
> vanishes and the correct output (4x false) is given. Sorry, but this clearly points to described problem with extended precision and floating point comparison. Putting printfs in front forces saving values from x87 registers (long double) to memory (double), and restore expected behavior (-ffloat-store would force something similar globally). (And something says me, that if you'd use single printf call in your debug code, and not series of printfs, result would "false false false true" instead (for same reason: in your test code previous printf calls caused x87 register flush, and changed result of last comparison).) Well, there can be /also/ gcc bug, but these comparisons look very fragile and should be fixed anyway (or, at least, workarounded by gcc option). -- To UNSUBSCRIBE, email to [email protected] with a subject of "unsubscribe". Trouble? Contact [email protected]

