Thread overview | |||||||
---|---|---|---|---|---|---|---|
|
April 23, 2005 complex float > compare to .max causing 'abnormal program termination' - 'constfold.c' line 575 | ||||
---|---|---|---|---|
| ||||
# // constfold_error.d at line 575 (on WinXP with dmd v0.121) # // Bug1: abnormal program termination # // Bug2: overflow 1.17549e-38+1.17549e-38i > 3.40282e+38+3.40282e+38i # // # // Note: This mainly appears to be a bug comparing '>' (greater-than) # // only against the complex float constant .max # // (bug1: cfloat.min > cfloat.max, bug2: cf > cfloat.max) # private import std.stdio; # # int main() # { # //cfloat cf = cfloat.min; # //cdouble cd = cdouble.min; # //creal cr = creal.min; # # if (cfloat.min > cfloat.max) // <-- Look at output 1 # //if (cfloat.min.re > cfloat.max.re && # // cfloat.min.im > cfloat.max.im) // ok # //if (cf == cfloat.max) // <-- Look at output 2 # goto Loverflow; # # return 0; # # Loverflow: # writefln("overflow %g > %g", cfloat.min, cfloat.max); # //writefln("overflow %g > %g", cf, cfloat.max); # return 1; # } * All of the complex float (cfloat, cdouble, and creal) constants compares of .min > .max fail. (ex: cfloat.min > cfloat.max) Output 1: --------- C:\dmd>dmd constfold_error.d Assertion failure: '0' on line 575 in file 'constfold.c' abnormal program termination C:\dmd> ------------------ * All of the complex float (cfloat, cdouble, and creal) .max constants when compared against a complex float variable set to .min of that datatype, return that .min is '>' .max. (ex: cf=cfloat.min; cf > cfloat.max) Output 2: How can cfloat.min be > cfloat.max; --------- C:\dmd>dmd constfold_error.d C:\dmd\bin\..\..\dm\bin\link.exe constfold_error,,,user32+kernel32/noi; C:\dmd>constfold_error overflow 1.17549e-38+1.17549e-38i > 3.40282e+38+3.40282e+38i C:\dmd> David L. ------------------------------------------------------------------- "Dare to reach for the Stars...Dare to Dream, Build, and Achieve!" ------------------------------------------------------------------- MKoD: http://spottedtiger.tripod.com/D_Language/D_Main_XP.html |
April 25, 2005 Re: complex float > compare to .max causing 'abnormal program termination' - 'constfold.c' line 575 | ||||
---|---|---|---|---|
| ||||
Posted in reply to David L. Davis | -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 David L Davis schrieb am Sat, 23 Apr 2005 12:18:31 +0000 (UTC): > # // constfold_error.d at line 575 (on WinXP with dmd v0.121) > # // Bug1: abnormal program termination > # // Bug2: overflow 1.17549e-38+1.17549e-38i > 3.40282e+38+3.40282e+38i > # // > # // Note: This mainly appears to be a bug comparing '>' (greater-than) > # // only against the complex float constant .max > # // (bug1: cfloat.min > cfloat.max, bug2: cf > cfloat.max) > # private import std.stdio; > # > # int main() > # { > # //cfloat cf = cfloat.min; > # //cdouble cd = cdouble.min; > # //creal cr = creal.min; > # > # if (cfloat.min > cfloat.max) // <-- Look at output 1 > # //if (cfloat.min.re > cfloat.max.re && > # // cfloat.min.im > cfloat.max.im) // ok > # //if (cf == cfloat.max) // <-- Look at output 2 > # goto Loverflow; > # > # return 0; > # > # Loverflow: > # writefln("overflow %g > %g", cfloat.min, cfloat.max); > # //writefln("overflow %g > %g", cf, cfloat.max); > # return 1; > # } > > * All of the complex float (cfloat, cdouble, and creal) constants compares of .min > .max fail. (ex: cfloat.min > cfloat.max) > > Output 1: > --------- > C:\dmd>dmd constfold_error.d > Assertion failure: '0' on line 575 in file 'constfold.c' > > abnormal program termination > > C:\dmd> > ------------------ > > * All of the complex float (cfloat, cdouble, and creal) .max constants when compared against a complex float variable set to .min of that datatype, return that .min is '>' .max. (ex: cf=cfloat.min; cf > cfloat.max) > > Output 2: How can cfloat.min be > cfloat.max; > --------- > C:\dmd>dmd constfold_error.d > C:\dmd\bin\..\..\dm\bin\link.exe constfold_error,,,user32+kernel32/noi; > > C:\dmd>constfold_error > overflow 1.17549e-38+1.17549e-38i > 3.40282e+38+3.40282e+38i Added to DStress as http://dstress.kuehne.cn/run/bug_constfold_575_A.d http://dstress.kuehne.cn/run/bug_constfold_575_B.d http://dstress.kuehne.cn/run/bug_constfold_575_C.d http://dstress.kuehne.cn/run/bug_constfold_575_D.d http://dstress.kuehne.cn/run/bug_constfold_575_E.d http://dstress.kuehne.cn/run/bug_constfold_575_F.d http://dstress.kuehne.cn/run/bug_constfold_575_G.d http://dstress.kuehne.cn/run/bug_constfold_575_H.d http://dstress.kuehne.cn/run/bug_constfold_575_I.d http://dstress.kuehne.cn/run/bug_constfold_575_J.d http://dstress.kuehne.cn/run/bug_constfold_575_K.d http://dstress.kuehne.cn/run/bug_constfold_575_L.d http://dstress.kuehne.cn/run/bug_constfold_575_M.d http://dstress.kuehne.cn/run/bug_constfold_575_N.d http://dstress.kuehne.cn/run/bug_constfold_575_O.d http://dstress.kuehne.cn/run/bug_constfold_575_P.d http://dstress.kuehne.cn/run/bug_constfold_575_Q.d http://dstress.kuehne.cn/run/bug_constfold_575_R.d Thomas -----BEGIN PGP SIGNATURE----- iD8DBQFCbIxc3w+/yD4P9tIRAjt+AJ93ocy+eXvHCcM/lu8NXPCZavvzIwCfRkxG 3HrTCOSF+Ef8KfIb40zDujQ= =Dvng -----END PGP SIGNATURE----- |
May 03, 2005 Re: complex float > compare to .max causing 'abnormal program termination' - 'constfold.c' line 575 | ||||
---|---|---|---|---|
| ||||
Posted in reply to David L. Davis | The trouble is that <, <=, >, >= comparisons are not defined for complex operands. I've fixed the compiler to now issue the appropriate error message. |
May 04, 2005 Re: complex float > compare to .max causing 'abnormal program termination' - 'constfold.c' line 575 | ||||
---|---|---|---|---|
| ||||
Posted in reply to Walter | In article <d58tbl$da5$1@digitaldaemon.com>, Walter says... > >The trouble is that <, <=, >, >= comparisons are not defined for complex operands. I've fixed the compiler to now issue the appropriate error message. > > Walter, thanks for checking into this! :) By complex operands, you must mean just the cfloat, cdouble, and creal...right? David L. ------------------------------------------------------------------- "Dare to reach for the Stars...Dare to Dream, Build, and Achieve!" ------------------------------------------------------------------- MKoD: http://spottedtiger.tripod.com/D_Language/D_Main_XP.html |
May 08, 2005 Re: complex float > compare to .max causing 'abnormal program termination' - 'constfold.c' line 575 | ||||
---|---|---|---|---|
| ||||
Posted in reply to David L. Davis | "David L. Davis" <SpottedTiger@yahoo.com> wrote in message news:d5ath8$2bkk$1@digitaldaemon.com... > In article <d58tbl$da5$1@digitaldaemon.com>, Walter says... > > > >The trouble is that <, <=, >, >= comparisons are not defined for complex operands. I've fixed the compiler to now issue the appropriate error message. > > > > > > Walter, thanks for checking into this! :) > > By complex operands, you must mean just the cfloat, cdouble, and creal...right? Right. |
Copyright © 1999-2021 by the D Language Foundation