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