digitalmars.D.bugs - AA's indexed by doubles bug
- Ben Hinkle (7/7) Mar 26 2005 int main() {
- =?UTF-8?B?VGhvbWFzIEvDvGhuZQ==?= (28/28) Mar 26 2005 -----BEGIN PGP SIGNED MESSAGE-----
- Dave (21/43) Mar 28 2005 In the hope of saving a little time tracking these down, the problem loo...
int main() {
int[double] x;
double d=22;
x[d] = 44;
assert( x[d] == 44 ); //fails
return 0;
}
Mar 26 2005
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Ben Hinkle wrote:
| int main() {
| int[double] x;
| double d=22;
| x[d] = 44;
| assert( x[d] == 44 ); //fails
| return 0;
| }
Added to DStress as
http://dstress.kuehne.cn/run/associative_array_08.d
http://dstress.kuehne.cn/run/associative_array_09.d
http://dstress.kuehne.cn/run/associative_array_10.d
http://dstress.kuehne.cn/run/associative_array_11.d
http://dstress.kuehne.cn/run/associative_array_12.d
http://dstress.kuehne.cn/run/associative_array_13.d
http://dstress.kuehne.cn/run/associative_array_14.d
http://dstress.kuehne.cn/run/associative_array_15.d
http://dstress.kuehne.cn/run/associative_array_16.d
http://dstress.kuehne.cn/run/associative_array_17.d
Thomas
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (MingW32)
iD8DBQFCRawB3w+/yD4P9tIRAusKAJ95bfpnJY5PoDZIKNC535VMzIv7KQCgihde
/4vmbhyQAF+b73zKpBGgaqI=
=wd3P
-----END PGP SIGNATURE-----
Mar 26 2005
In article <d24a39$3ic$1 digitaldaemon.com>, =?UTF-8?B?VGhvbWFzIEvDvGhuZQ==?=
says...
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Ben Hinkle wrote:
| int main() {
| int[double] x;
| double d=22;
| x[d] = 44;
| assert( x[d] == 44 ); //fails
| return 0;
| }
Added to DStress as
http://dstress.kuehne.cn/run/associative_array_08.d
http://dstress.kuehne.cn/run/associative_array_09.d
http://dstress.kuehne.cn/run/associative_array_10.d
http://dstress.kuehne.cn/run/associative_array_11.d
http://dstress.kuehne.cn/run/associative_array_12.d
http://dstress.kuehne.cn/run/associative_array_13.d
http://dstress.kuehne.cn/run/associative_array_14.d
http://dstress.kuehne.cn/run/associative_array_15.d
http://dstress.kuehne.cn/run/associative_array_16.d
http://dstress.kuehne.cn/run/associative_array_17.d
Thomas
In the hope of saving a little time tracking these down, the problem looks like
it is in the return statement for the relevant _compare(...) methods for each of
those types in phobos/std/typeinfo/ti_<type>.d.
For example, in phobos/std/typeinfo/ti_double.d:
| static int _compare(double d1, double d2)
| {
| if (d1 !<>= d2) // if either are NaN
| {
| if (isnan(d1))
| { if (isnan(d2))
| return 0;
| return -1;
| }
| return 1;
| }
|// return (d1 < d2) ? -1 : 1; // <-- problem here
| return (d1 < d2) ? -1 : (d1 > d2) ? 1 : 0;
| }
- Dave
Mar 28 2005








Dave <Dave_member pathlink.com>