[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