www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.learn - Uninitialized floating-point exceptions -> optional compile-time

reply Andrej Mitrovic <andrej.mitrovich gmail.com> writes:
I'm wondering about this:

void main()
{
    import std.math;
    FloatingPointControl fpc;
    fpc.enableExceptions(FloatingPointControl.severeExceptions);

    float foo;
}

Declaring uninitialized floating point variables after enabling severe
exceptions will throw at runtime:
object.Error: Invalid Floating Point Operation

I don't know whether this is intentional or not, if it is then:

Why not make this an optional compile-time warning as well? The
compiler is smart enough to figure out that foo was declared
uninitialized. Perhaps we could add another switch for this purpose.

I'm running into a lot of these uninitialized floating-point issues
lately, and that's exactly why I'm using FloatingPointControl. However
this is only useful at runtime. If the compiler can catch some of
these at compile-time via some optional switch that would make the
situation much better.
Jul 12 2011
next sibling parent bearophile <bearophileHUGS lycos.com> writes:
Andrej Mitrovic:


 I don't know whether this is intentional or not, 

I think it was not intentional. Regarding your successive questions, Don is your man and best hope. Bye, bearophile
Jul 12 2011
prev sibling parent Andrej Mitrovic <andrej.mitrovich gmail.com> writes:
I think he's on a vacation though. :p
Jul 12 2011