[Issue 3269] pure functions silently become nothrow

d-bugmail at puremagic.com d-bugmail at puremagic.com
Tue Oct 27 12:22:54 PDT 2009


http://d.puremagic.com/issues/show_bug.cgi?id=3269


Don <clugdbug at yahoo.com.au> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |patch, wrong-code


--- Comment #1 from Don <clugdbug at yahoo.com.au> 2009-10-27 12:22:53 PDT ---
// A pure function might have side effects, unless it is also nothrow.
// PATCH:     e2ir.c, line 288.

    e = el_una(op,tyret,ep);
    }
    else if (ep) {
-    e = el_bin(tf->ispure ? OPcallns : OPcall,tyret,ec,ep);
+    e = el_bin((tf->ispure && tf->isnothrow) ? OPcallns : OPcall,tyret,ec,ep);
    }
    else {
-    e = el_una(tf->ispure ? OPucallns : OPucall,tyret,ec);
+    e = el_una((tf->ispure && tf->isnothrow) ? OPucallns : OPucall,tyret,ec);
    }

    if (retmethod == RETstack)

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


More information about the Digitalmars-d-bugs mailing list