Thread overview | |||||||
---|---|---|---|---|---|---|---|
|
December 23, 2006 [Issue 730] New: broken operator handling of ifloat/idouble/ireal | ||||
---|---|---|---|---|
| ||||
http://d.puremagic.com/issues/show_bug.cgi?id=730 Summary: broken operator handling of ifloat/idouble/ireal Product: D Version: 0.177 Platform: PC OS/Version: Linux Status: NEW Severity: normal Priority: P2 Component: DMD AssignedTo: bugzilla@digitalmars.com ReportedBy: thomas-dloop@kuehne.cn # # void foo(){ # ifloat f = 1.0fi; # f *= 2.0fi; // illegal but compiles # } # It looks like all arithmetic operators for imaginary types perform insufficient type checks. test cases: http://dstress.kuehne.cn/nocompile/o/opAssign_21_A.d http://dstress.kuehne.cn/nocompile/o/opAssign_21_B.d http://dstress.kuehne.cn/nocompile/o/opAssign_21_C.d -- |
December 23, 2006 Re: [Issue 730] New: broken operator handling of ifloat/idouble/ireal | ||||
---|---|---|---|---|
| ||||
Posted in reply to d-bugmail Attachments: | d-bugmail@puremagic.com schrieb am 2006-12-23: > http://d.puremagic.com/issues/show_bug.cgi?id=730 > test cases: http://dstress.kuehne.cn/nocompile/o/opAssign_21_A.d http://dstress.kuehne.cn/nocompile/o/opAssign_21_B.d http://dstress.kuehne.cn/nocompile/o/opAssign_21_C.d Should have been: http://dstress.kuehne.cn/nocompile/o/opMulAssign_21_A.d http://dstress.kuehne.cn/nocompile/o/opMulAssign_21_B.d http://dstress.kuehne.cn/nocompile/o/opMulAssign_21_C.d |
October 31, 2007 [Issue 730] broken operator handling of ifloat/idouble/ireal | ||||
---|---|---|---|---|
| ||||
Posted in reply to d-bugmail | http://d.puremagic.com/issues/show_bug.cgi?id=730 bugzilla@digitalmars.com changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution| |INVALID ------- Comment #2 from bugzilla@digitalmars.com 2007-10-31 04:30 ------- It's not illegal. The mathematical result is 0, which is what is assigned to f. -- |
November 01, 2007 [Issue 730] broken operator handling of ifloat/idouble/ireal | ||||
---|---|---|---|---|
| ||||
Posted in reply to d-bugmail | http://d.puremagic.com/issues/show_bug.cgi?id=730 clugdbug@yahoo.com.au changed: What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |REOPENED Resolution|INVALID | ------- Comment #3 from clugdbug@yahoo.com.au 2007-11-01 02:54 ------- (In reply to comment #2) > It's not illegal. The mathematical result is 0, which is what is assigned to f. The imaginary part of the expression is indeed 0. But that involves an implicit cast from double to idouble, which is very hard to justify. The type of (1.0i * 2.0i) is double. It's not even a cdouble. The current behaviour violates a *= b <---> a = a*b, since the latter won't compile. idouble *= idouble is a bug in user code, 100% of the time. (I actually got bitten by this, when I wrote generic dot product code. You can't assume that a = a*a compiles). -- |
October 14, 2009 [Issue 730] broken operator handling of ifloat/idouble/ireal | ||||
---|---|---|---|---|
| ||||
Posted in reply to d-bugmail | http://d.puremagic.com/issues/show_bug.cgi?id=730 Don <clugdbug@yahoo.com.au> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|REOPENED |RESOLVED CC| |clugdbug@yahoo.com.au Resolution| |FIXED --- Comment #4 from Don <clugdbug@yahoo.com.au> 2009-10-14 00:07:25 PDT --- Fixed in DMD1.048 -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- |
Copyright © 1999-2021 by the D Language Foundation