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? }