ieeeFlags do not work properly
Torben Hagerup
hagerup at informatik.uni-augsburg.de
Thu Jan 7 01:32:50 PST 2010
Run under D version 2.037, the program below runs through without raising any assert exceptions. This shows an erratic behavior with respect to ieeeFlags that is hardly intended. Other ieeeFlags also work (or, rather, do not work) in unexpected ways.
--------------------
import std.math;
void main() {
// The execution leads to no assert errors
real a,b=3.5;
resetIeeeFlags();
assert(!ieeeFlags.divByZero); // so far no zero division
a=3.5/0.0L; // but now ...
assert(a==real.infinity); // yes, exactly
assert(!ieeeFlags.divByZero); // perhaps not, after all
b/=0.0L; // once more, the same, really
assert(b==real.infinity); // yes, the same
assert(ieeeFlags.divByZero); // oops, not the same after all?
}
More information about the Digitalmars-d-bugs
mailing list