[Issue 3671] x^^3 gives wrong result when x is a floating-point literal

2015-06-09 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=3671

Andrei Alexandrescu and...@erdani.com changed:

   What|Removed |Added

Version|2.038   |D2

--


[Issue 3671] x^^3 gives wrong result when x is a floating-point literal

2010-01-31 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=3671


Walter Bright bugzi...@digitalmars.com changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED


--- Comment #3 from Walter Bright bugzi...@digitalmars.com 2010-01-30 
22:46:39 PST ---
fixed dmd 2.040

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 3671] x^^3 gives wrong result when x is a floating-point literal

2010-01-11 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=3671


Walter Bright bugzi...@digitalmars.com changed:

   What|Removed |Added

 CC||bugzi...@digitalmars.com


--- Comment #2 from Walter Bright bugzi...@digitalmars.com 2010-01-11 
22:01:23 PST ---
Changeset 332

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 3671] x^^3 gives wrong result when x is a floating-point literal

2010-01-04 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=3671


Don clugd...@yahoo.com.au changed:

   What|Removed |Added

 CC||clugd...@yahoo.com.au
   Severity|major   |critical


--- Comment #1 from Don clugd...@yahoo.com.au 2010-01-04 04:17:59 PST ---
Ouch. I don't know what's happened here. The test suite I provided with the
patch in bug 3577 doesn't compile! 
This quick patch fixes the immediate bug reported here, but it still doesn't
compile the 3577 test suite.
The culprit is the call to typeCombine(). The test needs to be performed before
that.

Index: expression.c
===
--- expression.c(revision 324)
+++ expression.c(working copy)
@@ -9965,6 +9971,9 @@
  )  (e1-op == TOKint64 || e1-op == TOKfloat64)
)
 {
+bool wantCube = (e2-op == TOKint64  e2-toInteger() == 3) 
+  || (e2-op == TOKfloat64  e2-toReal() == 3.0);
+  
 typeCombine(sc);
 // Replace x^^2 with (tmp = x, tmp*tmp)
 // Replace x^^3 with (tmp = x, tmp*tmp*tmp) 
@@ -9973,8 +9982,8 @@
 VarExp * ve = new VarExp(loc, tmp);
 Expression *ae = new DeclarationExp(loc, tmp);
 Expression *me = new MulExp(loc, ve, ve);
-if ( (e2-op == TOKint64  e2-toInteger() == 3) 
-  || (e2-op == TOKfloat64  e2-toReal() == 3.0))
+
+if ( wantCube)
 me = new MulExp(loc, me, ve);
 e = new CommaExp(loc, ae, me);
 e = e-semantic(sc);

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---