Fix stringification assumption bug in overload.t, revealed by ia64-linux-ld.
authorNicholas Clark <nick@ccl4.org>
Thu, 11 Mar 2010 14:08:07 +0000 (14:08 +0000)
committerNicholas Clark <nick@ccl4.org>
Thu, 11 Mar 2010 14:08:07 +0000 (14:08 +0000)
commit9fa8ecf2a3ca91ec626e605a91e2840b8755036e
tree19435b7f1808bf2c0bbf78473effbcf74d25388a
parent4c1069378194cb28b7554e5db5a450e0595b43f4
Fix stringification assumption bug in overload.t, revealed by ia64-linux-ld.

Specifically:
1: / returns and NV where possible, only returning an integer if the dividend
   is an integer larger than an NV can represent accurately, and integer
   division is exact (ie no fractional part/remainder).
2: The test is performing $ref/1, intending it to be an identity operation
   on the numeric value of the reference.
3: The test assumes that the return result of the division will be a number
   that stringifies identically to the integer value of the reference.

The fails if both:

1: The system memory map is such that addresses are very large (ia64 does)
2: NVs are large enough to hold these addresses

because then the address becomes converted to an NV which has sufficient
decimal digits that stringification defaults to scientific notation.

Itanium Linux users the world over will be cheering because they can now
compile Perl with long doubles with confidence that all tests pass.
lib/overload.t