digitalmars.D.bugs - Complex and -O bug
- Nick (28/28) May 25 2005 Compiling the following with and without -O gives different results (usi...
- Thomas Kuehne (16/44) Jun 01 2005 -----BEGIN PGP SIGNED MESSAGE-----
Compiling the following with and without -O gives different results (using 0.125
on linux)
:import std.stdio;
:
:void main()
:{
: static cdouble[] params = [1,3,5];
:
: cdouble[] sums = new cdouble[3];
: sums[] = 0;
:
: foreach(cdouble d; params)
: {
: cdouble prod = d;
: for(int i; i<2; i++)
: {
: sums[i] += prod;
: prod *= d;
: }
: sums[2] += prod;
: }
: writefln(sums[0], " ", sums[1], " ", sums[2]);
:}
$ dmd run.d && run
9+0i 35+0i 153+0i (correct)
$ dmd -O run.d && run
9.0i 0+0i 0+0i (incorrect)
Nick
May 25 2005
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Nick schrieb am Wed, 25 May 2005 18:14:47 +0000 (UTC):
Compiling the following with and without -O gives different results (using
0.125
on linux)
:import std.stdio;
:
:void main()
:{
: static cdouble[] params = [1,3,5];
:
: cdouble[] sums = new cdouble[3];
: sums[] = 0;
:
: foreach(cdouble d; params)
: {
: cdouble prod = d;
: for(int i; i<2; i++)
: {
: sums[i] += prod;
: prod *= d;
: }
: sums[2] += prod;
: }
: writefln(sums[0], " ", sums[1], " ", sums[2]);
:}
$ dmd run.d && run
9+0i 35+0i 153+0i (correct)
$ dmd -O run.d && run
9.0i 0+0i 0+0i (incorrect)
Nick
Added to DStress as
http://dstress.kuehne.cn/run/c/cdouble_01_A.d
http://dstress.kuehne.cn/run/c/cdouble_01_B.d
http://dstress.kuehne.cn/run/c/cfloat_02_A.d
http://dstress.kuehne.cn/run/c/cfloat_02_B.d
http://dstress.kuehne.cn/run/c/creal_26_A.d
http://dstress.kuehne.cn/run/c/creal_26_B.d
Thomas
-----BEGIN PGP SIGNATURE-----
iD8DBQFCnc6D3w+/yD4P9tIRAqvTAJ9VSpmpRLDRCp8wnJDfzW2aG2NnagCgs7E6
IF4LLFkJ0I7yQOw3kHDQYCM=
=sRM0
-----END PGP SIGNATURE-----
Jun 01 2005








Thomas Kuehne <thomas-dloop kuehne.this-is.spam.cn>