Thread overview
[Issue 443] New: assignment in return when using cdouble is broken
Oct 19, 2006
d-bugmail
Oct 21, 2006
Thomas Kuehne
Nov 25, 2006
d-bugmail
October 19, 2006
http://d.puremagic.com/issues/show_bug.cgi?id=443

           Summary: assignment in return when using cdouble is broken
           Product: D
           Version: 0.172
          Platform: PC
        OS/Version: Linux
            Status: NEW
          Keywords: wrong-code
          Severity: normal
          Priority: P2
         Component: DMD
        AssignedTo: bugzilla@digitalmars.com
        ReportedBy: baryluk@mpi.int.pl


Minimal test case:
-----------
cdouble y;

cdouble f(cdouble x) {
    return (y = x);
}

void main() {
    f(1.0+2.0i);
    assert(y == 1.0+2.0i); // asseration fails on dmd 0.166-0.172
}
----------


If I'm using double instand of cdouble, or rewrite f as:
---------
cdouble f(cdouble x) {
y = x;
return x;
}
---------
then it's working ok.


-- 

October 21, 2006
d-bugmail@puremagic.com schrieb am 2006-10-19:
> http://d.puremagic.com/issues/show_bug.cgi?id=443

> Minimal test case:
> -----------
> cdouble y;
>
> cdouble f(cdouble x) {
>     return (y = x);
> }
>
> void main() {
>     f(1.0+2.0i);
>     assert(y == 1.0+2.0i); // asseration fails on dmd 0.166-0.172
> }
> ----------
>
>
> If I'm using double instand of cdouble, or rewrite f as:
> ---------
> cdouble f(cdouble x) {
> y = x;
> return x;
> }
> ---------
> then it's working ok.

Added to DStress as http://dstress.kuehne.cn/run/r/return_09_A.d http://dstress.kuehne.cn/run/r/return_09_B.d http://dstress.kuehne.cn/run/r/return_09_C.d

Thomas


November 25, 2006
http://d.puremagic.com/issues/show_bug.cgi?id=443


bugzilla@digitalmars.com changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|                            |FIXED




------- Comment #2 from bugzilla@digitalmars.com  2006-11-25 03:53 -------
Fixed DMD 0.175


--